本代码中已经写有包含展示界面的代码,运行之后也没有报错提醒,但是最后结果是不....
本帖最后由 小诺爷 于 2020-6-10 18:32 编辑import pygame,sys,random #pip install pygame安装pygame模块命令
from pygame.locals import *
#1定义颜色变量(目标方块,贪吃蛇,背景)
#根据rgb值选择颜色
redcolor = pygame.Color(255,0,0)#根据rgb值选择颜色
#目标方块颜色
whitecolor = pygame.Color(255,255,255)#根据rgb值选择颜色
#背景颜色
blackcolor = pygame.Color(0,0,0)#根据rgb值选择颜色
#2定义游戏结束函数
def gameover():
pygame.quit()#pygame模块结束
sys.exit()
#3实现工作
def main():
#分一pygame初始化
pygame.init()
#分二控制速度
fpsclock = pygame.time.clock()#速度控制
#分三创建pygame的显示层
playsurface = pygame.display.set_mode((640,480))#界面大小
pygame.display.set_caption('贪食蛇')#定义游戏名字
#分四 初始化变量
snakeposition = #贪食蛇起始位置
snakebody = [,,]#贪食蛇初始长度
targetposition = #方块初始位置
targetflag = 1#方块的标记,判断吃掉了方块
direction = 'right'#初始化方向为右
changeDirection = direction#方向变量,人为控制,并与键盘联系
#分五pygame中的事件要实时循环
while True:
for event in pygame.event.get():#获取所有事件可能
if event.type == QUIT:#如果事件不符合,退出
pygame.quit()#退出pygame
sys.exit()
elif event.type == KEYDOWN:#判断按键事件
if event.key == K_RIGHT:#key值为右,那么目标值为右
changeDirection ='right'
if event.key == K_LEFT:#key值为左,那么目标值为左
changeDirection = 'left'
if event.key == K_UP:#key值为上,那么目标值为上
changeDirection = 'up'
if event.key == K_DOWN:#key值为下,那么目标值为下
changeDirection = 'down'
#分六确定方向
if changeDirection == 'left' and not direction == 'right':#判断方向为左
direction = changeDirection#确定
if changeDirection == 'right'and not direction == 'left':#判断方向为右
direction = changeDirection#确定
if changeDirection == 'up'and not direction == 'down':#判断方向为上
direction = changeDirection#确定
if changeDirection == 'down'and not direction == 'up':#判断方向为下
direction = changeDirection#确定
#分七根据方向移动蛇头的坐标
if direction =='right':
snakeposition += 20
if direction =='left':
snakeposition += 20
if direction == 'up':
snakeposition += 20
if direction == 'down':
snakeposition += 20
#分八增加蛇的长度
snakebody.insert(0,list(snakeposition))
#如果贪食蛇和方块重合,成功,标记为0
if snakeposition ==targetposition and snakeposition == targetposition:
targetflag = 0
else:
snakebody.pop()
targetflag == 0
x = random.randrange(1,25)
y = random.randrange(1,25)
targetposition =
playsurface.fill(blackcolor)
for position in snakebody:
pygame.draw.rect(playsurface,redcolor,Rect(position,position,20,20))
pygame.draw.rect(playsurface,whitecolor,Rect(targetposition,targetposition,20,20))
pygame.display.flip()
if snakeposition > 480 or snakeposition < 0:
gameover()
elif snakeposition >480 or snakeposition < 0:
gameover()
fpsclock.tick(6)
if __name__ == '_main_':
main() 代码缩进爆了,重新编辑下发吧 本帖最后由 小诺爷 于 2020-6-10 16:26 编辑
求大佬检查代码,为什么运行不出来界面
页:
[1]