贪吃蛇是一个非常有趣的游戏,想必大家小时候都玩过,本文将和你一起研究时间如何使用pygame游戏库制作一个贪吃蛇游戏
1. 基本游戏画面
首先,我们需要制作出一个基本的游戏画面,这个过程中,我们将学习pygame的一些基本用法
from pygame.locals import *
import pygame
import time
class SnakeGame():
def __init__(self):
self.width = 800
self.height = 600
self._running = False
def init(self):
pygame.init() #初始化所有导入的pygame模块
# 初始化一个准备显示的窗口或屏幕
self._display_surf = pygame.display.set_mode((self.width,self.height), pygame.HWSURFACE)
self._running = True
def run(self):
self.init()
while self._running:
time.sleep(0.05)
if __name__ == '__main__':
snake = SnakeGame()
snake.run()
pygame.init()的目的是为了初始化所有导入的pygame模块,它会检查你电脑上的一些硬件驱动,比如声卡之类的。
游戏画面使用pygame.display.set_mode来初始化,这是一个必要的准备。通过属性_running来标识游戏是否仍在运行,这样,使用while循环时,就可以在特定条件下停下来。
为什么要写一个while循环呢?游戏是一个程序,它一直在运行,而且要不停的监听我们对游戏的操作,只有循环的程序结构才能满足这样的要求。
现在,我们已经有了一个基本游戏界面了,下一步,我们学习如何在界面上画出贪吃蛇所要吃的食物
2. 制作食物
贪吃蛇要迟到食物才能长大,界面上的食物,本质上是一张图片,我们通过技术手段将其画到界面上,下图是我准备的食物图片--food.png

开发游戏程序,建议你使用面向对象编程,这样会大大的减轻我们程序设计的难度,现在,我要设计一个食物类
STEP = 44
class Food():
def __init__(self, x, y, surface):
self.x = x*STEP
self.y = y*STEP
self.surface = surface
self.image = pygame.image.load("food.png").convert()
def draw(self):
self.surface.blit(self.image,(self.x, self.y))
Food类在创建对象时,需要提供x, y 坐标,这样就知道将其放在游戏画面的哪个位置上,在初始化时,同时将图片导入, surface需要传入SnakeG