python跑酷游戏源码,源码编辑器做简单跑酷游戏

  python跑酷游戏源码,源码编辑器做简单跑酷游戏

  这篇文章主要介绍了如何利用计算机编程语言编写一个简易版的天天跑酷游戏,文中的示例代码讲解详细,对我们学习计算机编程语言有一定帮助,需要的可以参考一下

  写出来的效果图就是这样了:

  下面就更新一下全部的代码吧

  还是老样子先定义

  importpygame,sys

  随机输入

  写一下游戏配置

  宽度=1200#窗口宽度

  高度=508#窗口高度

  尺寸=宽度,高度

  分数=无#分数

  myFont=myFont1=None#字体

  surObject=None#障碍物图片

  surGameOver=None#游戏结束图片

  血糖=无#背景对象

  角色=无#人物对象

  object=None#障碍物对象

  objectList=[]#障碍物对象数组

  时钟=无#时钟

  游戏状态=无#游戏状态(0,1)表示(游戏中,游戏结束)

  写人物

  classRole:#人物

  def__init__(self,surface=None,y=None):

  自我表面=表面

  self.y=y

  自我。w=(表面。get _ width())/12

  self.h=surface.get_height()/2

  self.currentFrame=-1

  self.state=0#0代表跑步状态,1代表跳跃状态,2代表连续跳跃

  self.g=1#重力加速度

  self.vy=0#y轴速度

  self.vy_start=-20#起跳开始速度

  defgetRect(self):

  return(0,self.y 12,self.w,self.h)

  写障碍物

  类对象:#障碍物

  def__init__(自身,表面,x=0,y=0):

  自我表面=表面

  self.x=x

  self.y=y

  self.w=surface.get_width()

  self.h=surface.get_height()

  自我。当前帧=随机。randint(0,6)

  self.w=100

  self.h=100

  defgetRect(self):

  return(self.x,self.y,self.w,self.h)

  去碰撞(自身,矩形1,矩形2):

  #碰撞检测

  if(rect2[0]=rect1[2]-20)或(rect1[0] 40=rect2[2])或(矩形1[1]矩形1[3]矩形2[1] 20)或(矩形2[1]矩形2[3]矩形1[1]20):

  返回错误的

  返回真

  写背景

  classBg:#背景

  def__init__(自身,表面):

  自我表面=表面

  self.dx=-10

  self.w=surface.get_width()

  self.rect=surface.get_rect()

  definitGame():

  globalbg,role,clock,gameState,surObject,surGameOver,score,myFont,myFont1,objectList

  #分数初始化

  分数=0

     #初始化

      objectList=[]

      #加载字体

      myFont=pygame.font.Font("./freesansbold.ttf",32)

      myFont1=pygame.font.Font("./freesansbold.ttf",64)   

      # 创建时钟对象 (可以控制游戏循环频率)

      clock = pygame.time.Clock()

      #初始化游戏状态

      gameState=0

      #游戏背景

      surBg=pygame.image.load("image/bg.bmp").convert_alpha()

      bg=Bg(surBg)

      #结束画面

      surGameOver=pygame.image.load("image/gameover.bmp").convert_alpha()

      #人物图片

      surRole=pygame.image.load("image/role.png").convert_alpha()  

      role=Role(surRole,508-85)

      #障碍物图片

      surObject=pygame.image.load("image/object.png").convert_alpha()  

  def addObject():

      global surObject,object,objectList,object

      rate=4

      #是否生成障碍物

      if not random.randint(0,300)<rate:

          return

      y=random.choice([height-100,height-200,height-300,height-400])

      object=Object(surObject,width+40,y)

      objectList.append(object)

  def updateLogic():

      global gameState,score

      #键盘事件处理

      for event in pygame.event.get():

          if event.type == pygame.QUIT:

               sys.exit()

          elif event.type==pygame.KEYDOWN:

              #空格键跳跃

              if gameState==0:

                  if event.key==pygame.K_SPACE:

                      if role.state==0:

                          role.state=1

                          role.vy=role.vy_start

                      elif role.state==1:

                          role.state=2

                          role.vy=role.vy_start

              elif gameState==1:

                  if event.key==pygame.K_SPACE:

                      #重新开始游戏

                      initGame()

      if gameState==0:

          #背景的移动   

          bg.dx+=10

          if bg.dx==1200:

              bg.dx=0 

          #人物的移动  

          if role.state==0:    

              role.currentFrame+=1

              if role.currentFrame==12:

                  role.currentFrame=0  

          else:

              role.y+=role.vy

              role.vy+=role.g 

              if role.y>=508-85:

                  role.y=508-85

                  role.state=0

          #障碍物的移动

          addObject()

          for object in objectList:

              object.x-=10     #障碍物移动

              # 障碍物超出屏幕,移除障碍物

              if object.x+object.w<=0:

                  objectList.remove(object)

                  score+=10    #避开障碍物,加10分

                  print("移除了一个目标")   

              #碰撞检测

              if object.collision(role.getRect(),object.getRect()):

                  if(object.currentFrame==6):

                      objectList.remove(object)

                      score+=100  #吃金币加100分

                      print(score)

                      print("吃了一个金币")

                  else: 

                      gameState=1   #游戏失败

                      print("发生了碰撞!")

  

  ok啦,这就是这个天天酷跑的全部代码啦。

  到此这篇关于基于Python编写简易版的天天跑酷游戏的示例代码的文章就介绍到这了,更多相关Python跑酷游戏内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: