乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      童年記憶第三彈?。?!用python寫一個天天酷跑

       路人甲Java 2021-05-25

      天天酷跑.jpg

      寫出來的效果圖就是這樣了
      下面就更新一下全部的代碼吧
      還是老樣子先定義

      import pygame,sys
      import random

      寫一下游戲配置

      width = 1200            #窗口寬度
      height = 508            #窗口高度
      size = width, height   
      score=None              #分數(shù)
      myFont=myFont1=None     #字體
      surObject=None          #障礙物圖片         
      surGameOver=None        #游戲結(jié)束圖片
      bg=None                 #背景對象
      role=None               #人物對象
      object=None             #障礙物對象        
      objectList=[]           #障礙物對象數(shù)組
      clock=None              #時鐘
      gameState=None          #游戲狀態(tài)(0,1)表示(游戲中,游戲結(jié)束)

      寫人物

      class Role: #人物
          def __init__(self,surface=None,y=None):
              self.surface=surface
              self.y=y
              self.w=(surface.get_width())/12
              self.h=surface.get_height()/2
              self.currentFrame=-1
              self.state=0        #0代表跑步狀態(tài),1代表跳躍狀態(tài),2代表連續(xù)跳躍
              self.g=1            #重力加速度
              self.vy=0           #y軸速度       
              self.vy_start=-20   #起跳開始速度
          def getRect(self):
              return (0,self.y+12,self.w,self.h)

      寫障礙物

      class Object:  #障礙物
          def __init__(self,surface,x=0,y=0):
              self.surface=surface
              self.x=x
              self.y=y
              self.w=surface.get_width()
              self.h=surface.get_height()
              self.currentFrame=random.randint(0,6)
              self.w = 100
              self.h = 100
          def getRect(self):
              return (self.x,self.y,self.w,self.h)
          def collision(self,rect1,rect2):
              #碰撞檢測
              if (rect2[0]>=rect1[2]-20) or (rect1[0]+40>=rect2[2])or (rect1[1]+rect1[3]<rect2[1]+20) or (rect2[1]+rect2[3]<rect1[1]+20):
                  return False
              return True

      寫背景

      class Bg:   #背景
          def __init__(self,surface):
              self.surface=surface
              self.dx=-10
              self.w=surface.get_width()
              self.rect=surface.get_rect()
      def initGame():
      
          global bg,role,clock,gameState,surObject,surGameOver,score,myFont,myFont1,objectList
          #分數(shù)初始化
          score=0
          #初始化
          objectList=[]
          #加載字體
          myFont=pygame.font.Font("./freesansbold.ttf",32)
          myFont1=pygame.font.Font("./freesansbold.ttf",64)   
          # 創(chuàng)建時鐘對象 (可以控制游戲循環(huán)頻率)
          clock = pygame.time.Clock()
          #初始化游戲狀態(tài)
          gameState=0
          #游戲背景
          surBg=pygame.image.load("image/bg.bmp").convert_alpha()
          bg=Bg(surBg)
          #結(jié)束畫面
          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("發(fā)生了碰撞!")

      推薦 :

      • 精品小圈子每日都有新內(nèi)容,干貨濃度極高。

      • 結(jié)實人脈、討論技術(shù) 你想要的這里都有!

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多