使用Python第三方库pygame写个贪吃蛇小游戏
今天看到几个关于pygame模块的博客和视频,感觉非常有趣,这里照猫画虎写了一个贪吃蛇小游戏,目前还有待完善,但是基本游戏功能已经实现,下面是代码:
#导入模块 importpygame importrandom #初始化 pygame.init() w=720#窗口宽度 h=600#窗口高度 ROW=30#行数 COL=36#列数 #将所有的坐标看作是一个个点,定义点类 classPoint: row=0 col=0 def__init__(self,row,col): self.row=row self.col=col defcopy(self): returnPoint(row=self.row,col=self.col) #显示窗口和标题 size=(w,h) window=pygame.display.set_mode(size) pygame.display.set_caption('贪吃蛇') #定义蛇头坐标 head=Point(row=ROW/2,col=COL/2) #蛇身体 snake_list=[ Point(row=head.row,col=head.col+1), Point(row=head.row,col=head.col+2), Point(row=head.row,col=head.col+3) ] #产生食物 defpro_food(): #食物不能与蛇重叠 whileTrue: pos=Point(row=random.randint(1,ROW-2),col=random.randint(1,COL-2)) is_coll=False ifhead.row==pos.rowandhead.col==pos.col: is_coll=True forsnakeinsnake_list: ifsnake.col==pos.colandsnake.row==pos.row: is_coll=True break ifnotis_coll: returnpos food=pro_food() #定义颜色 bg_color=(255,255,255) head_color=(0,128,128) food_color=(255,255,0) snake_color=(200,200,200) #给定初始方向 dire='left' defrect(point,color): cell_width=w/COL cell_height=h/ROW left=point.col*cell_width top=point.row*cell_height pygame.draw.rect( window,color, (left,top,cell_width,cell_height,) ) pass #游戏循环 quit=True clock=pygame.time.Clock() whilequit: foreventinpygame.event.get(): #退出方式 ifevent.type==pygame.QUIT: quit=False elifevent.type==pygame.KEYDOWN: #键盘控制 ifevent.key==273orevent.key==119: ifdire=='left'ordire=='right': dire='up' elifevent.key==274orevent.key==115: ifdire=='left'ordire=='right': dire='down' elifevent.key==276orevent.key==97: ifdire=='up'ordire=='down': dire='left' elifevent.key==275orevent.key==100: ifdire=='up'ordire=='down': dire='right' #吃 eat=(head.row==food.rowandhead.col==food.col) ifeat: food=pro_food() #处理身体 #1.原来的头换到身体最前端 snake_list.insert(0,head.copy()) #2.删除身体最后一个 ifnoteat: snake_list.pop() #移动 ifdire=='left': head.col-=1 elifdire=='right': head.col+=1 elifdire=='up': head.row-=1 elifdire=='down': head.row+=1 #检测: dead=False #1.撞墙 ifhead.col<0orhead.row<0orhead.col>=COLorhead.row>=ROW: dead=True #2.撞自己 forsnakeinsnake_list: ifhead.col==snake.colandhead.row==snake.row: dead=True break ifdead: print('dead') quit=False #绘制背景 pygame.draw.rect(window,bg_color,(0,0,w,h)) #蛇头 rect(head,head_color) #食物 rect(food,food_color) #蛇身 forsnakeinsnake_list: rect(snake,snake_color) pygame.display.flip() #游戏帧数 clock.tick(20)
效果:
总结
到此这篇关于使用Python第三方库pygame写个贪吃蛇小游戏的文章就介绍到这了,更多相关python贪吃蛇游戏内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。