最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python編寫簡易版的天天跑酷游戲的示例代碼

 更新時間:2022年03月23日 14:51:08   作者:Python小二  
這篇文章主要介紹了如何利用Python編寫一個簡易版的天天跑酷游戲,文中的示例代碼講解詳細,對我們學習Python有一定幫助,需要的可以參考一下

寫出來的效果圖就是這樣了:

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

還是老樣子先定義

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ā)生了碰撞!")

ok啦,這就是這個天天酷跑的全部代碼啦。

到此這篇關(guān)于基于Python編寫簡易版的天天跑酷游戲的示例代碼的文章就介紹到這了,更多相關(guān)Python跑酷游戲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

祁东县| 涡阳县| 镶黄旗| 珠海市| 张北县| 柳河县| 和龙市| 太仓市| 大名县| 北川| 建瓯市| 宜春市| 定南县| 潢川县| 普安县| 庆安县| 四子王旗| 宝丰县| 三河市| 菏泽市| 绥阳县| 屏东县| 南昌市| 青龙| 宁化县| 常德市| 江永县| 斗六市| 苗栗县| 石屏县| 温泉县| 易门县| 安顺市| 新干县| 双辽市| 靖江市| 手机| 资源县| 长沙市| 沈丘县| 北海市|