少儿编程分享:手把手教你用Python编写贪吃蛇小游戏(一)_第1页
少儿编程分享:手把手教你用Python编写贪吃蛇小游戏(一)_第2页
少儿编程分享:手把手教你用Python编写贪吃蛇小游戏(一)_第3页
少儿编程分享:手把手教你用Python编写贪吃蛇小游戏(一)_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、游戏分享:手把手教你用python 编写贪吃蛇(一)2018.1.10今天我们将分享用python 制作贪吃蛇游戏。来试着挑战一下自己吧!贪吃蛇游戏玩法在贪吃蛇游戏中,玩家将控制一只不断在屏幕上四处行进的小蛇。玩家不能让小蛇减速,只能够控制小蛇的转向。每隔一段时间,屏幕上将出现一个红苹果,苹果的位置是随机的,玩家的目标是让小蛇吃到苹果。游戏开始的时候,蛇的长度很短,之后每一次吃到苹果,小蛇都会变长一点。当小蛇撞到屏幕的边缘时,游戏就结束了。下面,让我们一起用python 一步步制作贪吃蛇游戏吧!游戏网格如果你之前玩过贪吃蛇游戏,你会发现苹果和小蛇的位置其实都是由网格线确定的。 这些由网格线确定

2、的小方格有它们自己的坐标系,如上图,最左上角的小方格坐标为(0,0),最右下角的坐标为(31,23)。初始代码1.# 贪吃蛇游戏2. # 关注码趣学院3.4.5.6. import random, pygame,sys7. from pygame.localsimport *8.9. fps = 1510. windowwidth= 64011.windowheight= 48012. cellsize= 2013. assert windowwidth% cellsize= 0, windowwidth must be amultiple of cell size.14. assert wi

3、ndowheight% cellsize= 0, windowheight must be amultiple of cell size.15. cellwidth= int(windowwidth/ cellsize)16. cellheight= int(windowheight/ cellsize)上面的代码设定了游戏的常量(constantvariables),这些量在游戏进行的过程中将不会被改变。小方格的边长被储存在变量cellsize 中。assert 语句(第13,14行)确保小方格的尺寸能够和游戏窗口完美契合。例如,如果变量cellsize 为 10,而游戏窗口的宽 windo

4、wwidth和高 windowheight都被设置为 15,那么整个游戏窗口只能放进1.5个小方格。 assert 语句确保窗口中的小方格数量为整数。18. #r 红 g 绿 b 蓝19. white= (255, 255, 255)20. black= (0,0,0)21. red= (255,0,0)22. green= (0, 255,0)23. darkgreen= (0, 155,0)24. darkgray= ( 40,40,40)25. bgcolor= black26.27. up = up28. down = down29. left = left30. right = ri

5、ght31.32. head = 0 #小蛇头部的索引(index )main 函数34. def main():35.global fpsclock,displaysurf,basicfont36.37.pygame.init()38.fpsclock= pygame.time.clock()39.displaysurf= pygame.display.set_mode(windowwidth,windowheight)40.basicfont= pygame.font.font(freesansbold.ttf,18)41.pygame.display.set_caption(wormy)

6、42.43.showstartscreen()44.while true:45.rungame()46.showgameoverscreen()在贪吃蛇游戏程序中,我们把代码的主要部分放在一个叫做rungame 的函数中。这是因为我们只想要展示一次游戏的开始界面(一段带有不断旋转的“wormy ”字样的动画),用showstartscreen 函数实现。接着我们将调用rungame 函数来正式开始贪吃蛇游戏。这个函数将在玩家的小蛇超出窗口边缘或者撞到自身的时候返回( return)(即函数结束)。游戏结束时,我们需要调用showgameoverscreen来展示游戏的结束界面。当这个函数返回的

7、时候, while 循环重新进行, rungame 函数再次被调用,游戏重新开始。第 44 行的 while 循环将永远进行下去,直到程序被终止。独立的 rungame 函数49. def rungame():50.# 为小蛇设置一个随机的出发点51.startx = random.randint(5,cellwidth- 6)52.starty = random.randint(5,cellheight-6)53.wormcoords= x: startx,y: starty,54.x: startx -1, y: starty,55.x: startx -2, y: starty56.di

8、rection= right57.58.# 把苹果放在一个随机的位置59.apple = getrandomlocation()在游戏的开始,我们希望小蛇能够在一个随机的位置出现(但不要离窗口的边缘太近)。所以我们需要在变量startx 和 starty 中分别储存一个随机的坐标值。(注意:cellwidth 和 cellheight 是窗口横向和竖向上小方格的数量,而不是小方格自己的宽度和高度)。在上面这段代码中,我们确定了游戏一开始时小蛇的长度和小蛇身体各部分的位置。小蛇的身体以字典(dictionary)的形式被储存起来。其中,头部坐标由变量startx 和 starty 确定,剩下的两端则被放在头部左侧的两个方格中。小蛇每一段身体的横纵坐标被储存在字典的x、y键值( key )中。所有代表小蛇身体的字典被储存在名为 wormcoords 的列表( list)中。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论