欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Python編寫(xiě)簡(jiǎn)易版的天天跑酷游戲的示例代碼

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

寫(xiě)出來(lái)的效果圖就是這樣了:

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

還是老樣子先定義

import?pygame,sys
import?random

寫(xiě)一下游戲配置

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

寫(xiě)人物

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???#起跳開(kāi)始速度
????def?getRect(self):
????????return?(0,self.y+12,self.w,self.h)

寫(xiě)障礙物

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):
????????#碰撞檢測(cè)
????????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

寫(xiě)背景

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
????#分?jǐn)?shù)初始化
????score=0
????#初始化
????objectList=[]
????#加載字體
????myFont=pygame.font.Font("./freesansbold.ttf",32)
????myFont1=pygame.font.Font("./freesansbold.ttf",64)???
????#?創(chuàng)建時(shí)鐘對(duì)象?(可以控制游戲循環(huán)頻率)
????clock?=?pygame.time.Clock()
????#初始化游戲狀態(tài)
????gameState=0
????#游戲背景
????surBg=pygame.image.load("image/bg.bmp").convert_alpha()
????bg=Bg(surBg)
????#結(jié)束畫(huà)面
????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
????#鍵盤(pán)事件處理
????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:
????????????????????#重新開(kāi)始游戲
????????????????????initGame()
????????????????????
????if?gameState==0:
????????#背景的移動(dòng)???
????????bg.dx+=10
????????if?bg.dx==1200:
????????????bg.dx=0?
????????????
????????#人物的移動(dòng)??
????????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
????????#障礙物的移動(dòng)
????????addObject()
????????
????????for?object?in?objectList:
????????????object.x-=10?????#障礙物移動(dòng)
????????????#?障礙物超出屏幕,移除障礙物
????????????if?object.x+object.w<=0:
????????????????objectList.remove(object)
????????????????score+=10????#避開(kāi)障礙物,加10分
????????????????print("移除了一個(gè)目標(biāo)")???
????????????#碰撞檢測(cè)
????????????if?object.collision(role.getRect(),object.getRect()):
????????????????if(object.currentFrame==6):
????????????????????objectList.remove(object)
????????????????????score+=100??#吃金幣加100分
????????????????????print(score)
????????????????????print("吃了一個(gè)金幣")
????????????????else:?
????????????????????gameState=1???#游戲失敗
????????????????????print("發(fā)生了碰撞!")

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

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

相關(guān)文章

  • 基于Python新建用戶(hù)并產(chǎn)生隨機(jī)密碼過(guò)程解析

    基于Python新建用戶(hù)并產(chǎn)生隨機(jī)密碼過(guò)程解析

    這篇文章主要介紹了基于Python新建用戶(hù)并產(chǎn)生隨機(jī)密碼過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 如何將python代碼生成API接口

    如何將python代碼生成API接口

    這篇文章主要介紹了如何將python代碼生成API接口,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • python之multimethod包多分派解讀

    python之multimethod包多分派解讀

    這篇文章主要介紹了python之multimethod包多分派問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 用python寫(xiě)測(cè)試數(shù)據(jù)文件過(guò)程解析

    用python寫(xiě)測(cè)試數(shù)據(jù)文件過(guò)程解析

    這篇文章主要介紹了用python寫(xiě)測(cè)試數(shù)據(jù)文件過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 解決CentOS下ImportError: No module named '_sqlite3'的問(wèn)題

    解決CentOS下ImportError: No module named &a

    這篇文章主要介紹了解決CentOS下ImportError: No module named '_sqlite3'的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python機(jī)器學(xué)習(xí)之實(shí)現(xiàn)模糊照片人臉恢復(fù)清晰

    Python機(jī)器學(xué)習(xí)之實(shí)現(xiàn)模糊照片人臉恢復(fù)清晰

    GFPGAN是騰訊開(kāi)源的人臉修復(fù)算法,它利用預(yù)先訓(xùn)練好的面部?GAN(如?StyleGAN2)中封裝的豐富和多樣的先驗(yàn)因素進(jìn)行盲臉?(blind?face)修復(fù)。這篇文章主要為大家介紹通過(guò)GFPGAN實(shí)現(xiàn)模糊照片人臉恢復(fù)清晰,需要的朋友可以參考一下
    2021-12-12
  • fastapi框架異步執(zhí)行踩坑記錄

    fastapi框架異步執(zhí)行踩坑記錄

    這篇文章主要介紹了fastapi框架異步執(zhí)行踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 解決pip安裝報(bào)錯(cuò)required?to?install?pyproject.toml-based?projects問(wèn)題

    解決pip安裝報(bào)錯(cuò)required?to?install?pyproject.toml-based?projec

    這篇文章主要介紹了解決pip安裝報(bào)錯(cuò)required?to?install?pyproject.toml-based?projects問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • python追加元素到列表的方法

    python追加元素到列表的方法

    這篇文章主要介紹了python追加元素到列表的方法,涉及Python列表操作中append方法追加元素的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Python可視化函數(shù)plt.scatter詳解

    Python可視化函數(shù)plt.scatter詳解

    這篇文章主要介紹了Python可視化函數(shù)plt.scatter詳解,?關(guān)于matplotlib的scatter函數(shù)有許多活動(dòng)參數(shù),如果不專(zhuān)門(mén)注解,是無(wú)法掌握精髓的,本文專(zhuān)門(mén)針對(duì)scatter的參數(shù)和調(diào)用說(shuō)起,并配有若干案例,需要的朋友可以參考下
    2023-04-04

最新評(píng)論