本文首发于行者AI
1.序言
目前基本上软测会用到的工具或者第三方库都已经被写完,本着不要逮着一只羊进行薅羊毛原则,换个赛道,这次就使用pygame库写个简单的贪吃蛇吧,当做熟悉python练手也是不错的。
2.安装与导入
使用pip install pygame进入安装,安装成功后导入所需模块:
import pygame,sys,random
from pygame.locals import *
其中sys为要在后续中使用它的退出程序机制所以在这里需要导入。
3.定义后续需要的参数
#初始化pygame库
pygame.init()
在用pygame时,初始化库是必须的,对应后面的退出代码,这两个是一对的。
#初始化一个游戏界面
DISPLAY=pygame.display.set_mode((800,800))
#设置游戏窗口标题
pygame.display.set_caption('贪吃蛇')
在写完以上代码后,点击运行是会有一闪而过的界面,这是正常的,因为没有任何东西在运行。
#定义一个变量控制游戏速度
FPSCLOCK=pygame.time.Clock()
#定义颜色
BLACK=pygame.Color(0,0,0)
WHITE=pygame.Color(255,255,255)
RED=pygame.Color(255,0,0)
# 定义蛇头初始位置
snake_Head=[100,100]
# 定义一个蛇初始长度,因为界面都是20*20所以长度都是减20
snake_Body=[[80,100], [60,100]]
# # 蛇初始方向
direction="right"
# 定义改变方向的变量,按键
changeDirection = direction
#定义初始食物位置
food_Postion = [300,300]
# 定义食物状态,0表示被吃,1表示没有被吃
food_Total = 1
以上都是在定义后续会用到的参数。
4.绘制蛇与食物
#绘制贪吃蛇
def drawSnake(snake_Body):
for i in snake_Body:
pygame.draw.rect(DISPLAY,WHITE,Rect(i[0],i[1],20,20))
#绘制食物位置
def drawFood(food_Postion):
pygame.draw.rect(DISPLAY,RED,Rect(food_Postion[0],food_Postion[1],20,20))
上面的pygame.draw.rect(DISPLAY,RED,Rect(food_Postion[0],food_Postion[1],20,20)) draw是pygame的绘制模块,rect中DISPLAY是在我们设置的游戏界面上绘制颜色、所绘制矩形的区域、矩形的宽度和高度。
5.游戏规则与运行
def gameover():
#退出pygame
pygame.quit()