pygame实现贪吃蛇游戏

本文实例为大家分享了pygame实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下
为了简化起见,游戏素材暂定为两张简单的图片(文中用的是30*30)。
大家很方便就能制作。
pygame实现贪吃蛇游戏
文章图片

背景也是纯黑填充。
各种音乐字体特效玩法场景等大家可以自由发挥

import pygameimport sysimport randomfps=6#设置帧率move={'up':[-30,0],'down':[30,0],'left':[0,-30],'right':[0,30]}#上下左右映射为值class MOCCASIN(object):#蛇类def __init__(self):self.scheme=pygame.image.load('moccasin.png')self.x=int(20*random.random())*30self.y=int(20*random.random())*30self.body=[[self.x,self.y],[self.x,self.y+30],[self.x,self.y+60]]self.direct='up'def update(self):self.x+=move[self.direct][1]self.y+=move[self.direct][0]self.body.insert(0,[self.x,self.y])class FOOD(object):#食物类def __init__(self):self.scheme=pygame.image.load('food.png')self.coordinate=(int(20*random.random())*30,int(20*random.random())*30)def updateMap():#场景更新screen.fill((0,0,0))moccasin.update()screen.blit(food.scheme,food.coordinate)for x in moccasin.body:screen.blit(moccasin.scheme,tuple(x)+(30,30))def bitself():#是否咬到自己dct={}for ll in moccasin.body:if tuple(ll) in dct :return Truedct[tuple(ll)]=1return Falseif __name__=='__main__':pygame.init()pygame.display.set_caption('「moccasin」')screen=pygame.display.set_mode((600,600))food=FOOD()moccasin=MOCCASIN()clk=pygame.time.Clock()while True:clk.tick(fps)for event in pygame.event.get():if event.type==pygame.QUIT:sys.exit()elif event.type==pygame.KEYDOWN:if event.key==pygame.K_UP and moccasin.direct!='down':moccasin.direct='up'if event.key==pygame.K_DOWN and moccasin.direct!='up':moccasin.direct='down'if event.key==pygame.K_LEFT and moccasin.direct!='right':moccasin.direct='left'if event.key==pygame.K_RIGHT and moccasin.direct!='left':moccasin.direct='right'if not (0<=moccasin.x<600 and 0<=moccasin.y<600) or bitself(): break; #检测蛇是否死亡if food.coordinate==tuple(moccasin.body[0]): #是否吃到食物food=FOOD()else: moccasin.body.pop()updateMap() #更新地图pygame.display.update()#蛇死亡,游戏结束screen.fill((0,0,0))tips="失 败"tipsFont=pygame.font.Font('C:\Windows\Fonts\msyh.ttc',100)tipsSurf=tipsFont.render(tips,1,(255,255,255))screen.blit(tipsSurf,(screen.get_width()/2-tipsSurf.get_width()/2,256))pygame.display.flip()

【pygame实现贪吃蛇游戏】以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    推荐阅读