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

基于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啦,這就是這個天天酷跑的全部代碼啦。

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

相關文章

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

    基于Python新建用戶并產(chǎn)生隨機密碼過程解析

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

    如何將python代碼生成API接口

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

    python之multimethod包多分派解讀

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

    用python寫測試數(shù)據(jù)文件過程解析

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

    解決CentOS下ImportError: No module named &a

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

    Python機器學習之實現(xiàn)模糊照片人臉恢復清晰

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

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

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

    解決pip安裝報錯required?to?install?pyproject.toml-based?projec

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

    python追加元素到列表的方法

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

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

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

最新評論