如何使用python的pgzrun做一个贪吃蛇游戏

大家好,我是于翱睿,今天我来给大家讲一下如何使用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制作一个贪吃蛇游戏,希望这对你有所帮助。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值