猫史档案馆


单人贪吃蛇

用户:流年似水oQ54流年似水oQ54查看:0 回复:4 评论:0 创建时间:2021-08-21T15:33:15


#!/usr/bin/envpython importpygame,sys,time,random frompygame.localsimport* #定义颜色变量 redColour=pygame.Color(255,0,0) blackColour=pygame.Color(0,0,0) whiteColour=pygame.Color(255,255,255) greyColour=pygame.Color(150,150,150) #定义gameOver函数 defgameOver(playSurface): gameOverFont=pygame.font.Font('arial.ttf',72) gameOverSurf=gameOverFont.render('GameOver',True,greyColour) gameOverRect=gameOverSurf.get_rect() gameOverRect.midtop=(320,10) playSurface.blit(gameOverSurf,gameOverRect) pygame.display.flip() time.sleep(5) pygame.quit() sys.exit() #定义main函数 defmain(): #初始化pygame pygame.init() fpsClock=pygame.time.Clock() #创建pygame显示层 playSurface=pygame.display.set_mode((喵0,480)) pygame.display.set_caption('RaspberrySnake') #初始化变量 snakePosition=[100,100] snakeSegments=[[100,100],[80,100],[60,100]] raspberryPosition=[300,300] raspberrySpawned=1 direction='right' changeDirection=direction whileTrue: #检测例如按键等pygame事件 foreventinpygame.event.get(): ifevent.type==QUIT: pygame.quit() sys.exit() elifevent.type==KEYDOWN: #判断键盘事件 ifevent.key==K_RIGHTorevent.key==ord('d'): changeDirection='right' ifevent.key==K_LEFTorevent.key==ord('a'): changeDirection='left' ifevent.key==K_UPorevent.key==ord('w'): changeDirection='up' ifevent.key==K_DOWNorevent.key==ord('s'): changeDirection='down' ifevent.key==K_ESCAPE: pygame.event.post(pygame.event.Event(QUIT)) #判断是否输入了反方向 ifchangeDirection=='right'andnotdirection=='left': direction=changeDirection ifchangeDirection=='left'andnotdirection=='right': direction=changeDirection ifchangeDirection=='up'andnotdirection=='down': direction=changeDirection ifchangeDirection=='down'andnotdirection=='up': direction=changeDirection #根据方向移动蛇头的坐标 ifdirection=='right': snakePosition[0]+=20 ifdirection=='left': snakePosition[0]-=20 ifdirection=='up': snakePosition[1]-=20 ifdirection=='down': snakePosition[1]+=20 #增加蛇的长度 snakeSegments.insert(0,list(snakePosition)) #判断是否吃掉了树莓 ifsnakePosition[0]==raspberryPosition[0]andsnakePosition[1]==raspberryPosition[1]: raspberrySpawned=0 else: snakeSegments.pop() #如果吃掉树莓,则重新生成树莓 ifraspberrySpawned==0: x=random.randrange(1,32) y=random.randrange(1,24) raspberryPosition=[int(x*20),int(y*20)] raspberrySpawned=1 #绘制pygame显示层 playSurface.fill(blackColour) forpositioninsnakeSegments: pygame.draw.rect(playSurface,whiteColour,Rect(position[0],position[1],20,20)) pygame.draw.rect(playSurface,redColour,Rect(raspberryPosition[0],raspberryPosition[1],20,20)) #刷新pygame显示层 pygame.display.flip() #判断是否喵 ifsnakePosition[0]>620orsnakePosition[0]<0: gameOver(playSurface) ifsnakePosition[1]>460orsnakePosition[1]<0: forsnakeBodyinsnakeSegments[1:]: ifsnakePosition[0]==snakeBody[0]andsnakePosition[1]==snakeBody[1]: gameOver(playSurface) #控制游戏速度 fpsClock.tick(5) if__name__=="__main__": main()


回复

上一页1 页 / 共 1下一页
Python染辞Python染辞

...

点赞0


评论


wwwloadwwwload

    

点赞0


评论


Python-happyyyyPython-happyyyy

发个代码会死系列

点赞0


评论


OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

...........

点赞0


评论