鱼C论坛

 找回密码
 立即注册
查看: 780|回复: 2

本代码中已经写有包含展示界面的代码,运行之后也没有报错提醒,但是最后结果是不....

[复制链接]
发表于 2020-6-9 20:16:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 小诺爷 于 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 = [100,100]#贪食蛇起始位置
    snakebody = [[100,100],[80,100],[60,100]]#贪食蛇初始长度
    targetposition = [300,300]#方块初始位置
    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[0] += 20
        if direction =='left':
            snakeposition[0] += 20
        if direction == 'up':
            snakeposition[1] += 20
        if direction == 'down':
            snakeposition[1] += 20


        #分八增加蛇的长度
        snakebody.insert(0,list(snakeposition))
        #如果贪食蛇和方块重合,成功,标记为0
        if snakeposition[0] ==targetposition[0] and snakeposition[1] == targetposition[1]:
            targetflag = 0
        else:
             snakebody.pop()
             targetflag == 0
        x = random.randrange(1,25)
        y = random.randrange(1,25)
        targetposition =[int(x*20),int(y*20)]


        playsurface.fill(blackcolor)
        for position in snakebody:
             pygame.draw.rect(playsurface,redcolor,Rect(position[0],position[1],20,20))
             pygame.draw.rect(playsurface,whitecolor,Rect(targetposition[0],targetposition[1],20,20))


        pygame.display.flip()

        if snakeposition[0] > 480 or snakeposition[0] < 0:
             gameover()
        elif snakeposition[1] >480 or snakeposition[1] < 0:
             gameover()



        fpsclock.tick(6)

if __name__ == '_main_':
    main()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-9 20:17:08 | 显示全部楼层
代码缩进爆了,重新编辑下发吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-10 12:07:22 | 显示全部楼层
本帖最后由 小诺爷 于 2020-6-10 16:26 编辑

求大佬检查代码,为什么运行不出来界面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 19:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表