大家好,我是于翱睿,今天我来给大家讲一下如何使用python的pgzrun库做一个贪吃蛇游戏
贪吃蛇游戏的算法其实不难,以下代码是游戏算法(注意!首先要安装好pgzrun库哦!)
以下代码是本项目的算法代码
import pgzrun, random
mobile_key_type1()
HEIGHT = 600
WIDTH = 800
TITLE = '贪吃蛇'
sList = []
bg = Actor('bg.png')
snakeHead = Actor('snake.png', [400, 300])
x = random.randint(10,30) * 20
y = random.randint(10,21) * 20
star = Actor('star.png', [x, y])
sList.append(snakeHead)
for i in range(1, 4):
x = snakeHead.x - 20 * i
snakeBody = Actor('snake.png', [x, 300])
sList.append(snakeBody)
fx = 'right'
fs = 0
state = '1'
def draw():
bg.draw()
for s in sList:
s.draw()
star.draw()
screen.draw.text('得分:'+ str(fs),center = [400,560])
if state == '0':
bg.draw()
screen.draw.text('Game Over !',center = [400,300],fontsize = 80,color = 'red')
def on_key_down():
global fx
if keyboard.K_LEFT or keyboard.K_A:
fx = 'left'
if keyboard.K_RIGHT or keyboard.K_D:
fx = 'right'
if keyboard.K_UP or keyboard.K_W:
fx = 'up'
if keyboard.K_DOWN or keyboard.K_S:
fx = 'down'
def sMove():
global fx, fs ,state
newSHead = Actor('snake.png')
if fx == 'right':
newSHead.x = sList[0].x + 20
newSHead.y = sList[0].y
if fx == 'left':
newSHead.x = sList[0].x - 20
newSHead.y = sList[0].y
if fx == 'up':
newSHead.x = sList[0].x
newSHead.y = sList[0].y - 20
if fx == 'down':
newSHead.x = sList[0].x
newSHead.y = sList[0].y + 20
sList.insert(0, newSHead)
if star.collidepoint(sList[0].pos):
star.x = random.randint(10,30) * 20
star.y = random.randint(10,21) * 20
fs += 1
else:
sList.remove(sList[-1])
if sList[0].x < 10 or sList[0].x >790 or sList[0].y < 10 or sList[0].y > 590:
clock.unschedule(sMove)
state = '0'
for s in sList:
if s == sList[0]:
pass
else:
if s.collidepoint(sList[0].pos):
state = '0'
clock.schedule_interval(sMove, 0.3)
pgzrun.go()
还不够哦!直接运行上方代码会报错哦!应该先做一个名字为images的文件夹,然后在文件夹里添加bg.png & snake.png & star.png 注意,必须全是png格式。
bg.png:背景图片,可以是一片空白,也可以是一片黑色,或者你喜欢的背景图
snake.png:上过小学语文课的都知道,snake 是什么意思,就是蛇的意思嘛!但是必须是蛇的其中一节,背景要是透明的,可以是圆形,可以是方形。
star.png: 星星,也就是食物,自定义
好了,以上就是关于如何使用python制作一个贪吃蛇游戏,希望这对你有所帮助。