使用pygame制作一个贪吃蛇的小游戏

  

之前我们已经学习了如果使用pygame创建一个窗口,现在我们来学习使用pygame来制作一个经典的小游戏——贪吃蛇。

  
      <李>   <强>首先我们需要导入待使用的模块:
  <前>   <代码>进口pygame sys,随机的   pygame。当地进口*      

  <代码> pygame。当地人模块>   

      <李>   <强>模块导入之后我们可以先定义好会用到的颜色,根据大家的喜好定义:
  <前>   <代码> #定义颜色   pinkColor=pygame。颜色(255、182、193)   blackColor=pygame。颜色(0,0,0)   whiteColor=pygame。颜色(255、255、255)      

  <代码> pygame.Color()>   <前>   <代码>颜色(名字)→颜色   颜色(r, g, b, a)→颜色   颜色(rgbvalue)→颜色   #颜色对象的方法,属性   pygame.Color。接待员:获取或者设置颜色对象的红色值   pygame.Color。旅客:获取或者设置颜色对象的绿色值   pygame.Color。b:获取或者设置颜色对象的蓝色值   pygame.Color。答:获取或者设置颜色对象的α值   pygame.Color。c my:获取或者设置颜色对象的c my值   pygame.Color。hsva:获取或者设置颜色对象的hsav值   pygame.Color。hsla:获取或者设置颜色对象的hsla值   pygame.Color。我1 i2i3:获取或者设置颜色对象的I1I2I3描述   pygame.Color。规范化:返回一个颜色对象的RGBA(显示通道)值   pygame.Color。正确的伽马:颜色对象请求一个确定伽马值   pygame.Color。设置长度:设置在颜色对象中元素的数值为1、2、3或4      

      <李>   <强>当游戏结束时,我们需要退出这个游戏,所我们需要给游戏定义一个用于退出的函数,很简单,就是先退出pygame窗口,再退出程序:
  <前>   <代码> #定义游戏结束的函数   def败阵():   #退出pygame窗口   pygame.quit ()   #退出程序   sys.exit ()      
      <李>   <强>定义好结束函数之后,我们需要定义一个入口函数,用于进入游戏,游戏的主要代码都写在这里面:
  <前>   <代码> def main ():   #初始化   pygame.init ()   #定义一个变量来控制速度   time_clock=pygame.time.Clock ()   #创建窗口,定义标题   屏幕=pygame.display。set_mode ((640, 480))   pygame.display.set_caption(“贪吃蛇”)      

首先我们需要初始化pygame,创建好游戏窗口,顺便定义一个用来控制速度的变量,这个变量用于贪吃蛇的移动。

  
      <李>   <强>接着初始化一些贪吃蛇和食物用到的变量,将整个界面看成许多20 x20的小方块,每个方块代表一个单位
  <前>   <代码> #定义蛇的初始化变量   snakePosition=(100、100) #蛇头位置   #定义一个贪吃蛇的长度列表,其中有几个元素就代表有几段身体,这里我们定义5段身体   snakeSegments=[(100、100), (80、100), [100], [100], [100]]   #初始化食物位置   foodPostion=(300、300)   #食物数量,0表示被吃了,1表示没被吃   foodTotal=1   #初始方向,向右=罢贰钡姆较?   #定义一个改变方向的变量,按键   changeDirection=方向      
      <李>   <强>初始化好数据之后,使用而循环来侦听事件,通过不断地循环使蛇不断地前进
  <前>   <代码>而真实的:   #从队列中获取事件   在pygame.event.get事件():   #判断是否为退出事件   如果事件。类型==退出:   pygame.quit ()   sys.exit ()   按#键事件   elif事件。类型==KEYDOWN:   #如果是右键头或者是d,蛇向右移动   如果事件。键==K_RIGHT或事件。关键==K_d:   changeDirection='正确'   #如果是左键头或者是,蛇向左移动   如果事件。键==K_LEFT或事件。关键==K_a:   changeDirection='左'   如果事件。键==K_UP或事件。关键==K_w:   changeDirection='了'   如果事件。键==K_DOWN或事件。关键==K_s:   changeDirection='了'   #对应键盘上的Esc键,表示退出   如果事件。关键==K_ESCAPE:   pygame.event.post (pygame.event.Event(辞职)      

KEYDOWN是键盘按键事件,而K_RIGHT, K_LEFT, K_d, K_a等这些表示对应键盘上的按键。