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

基于Python實(shí)現(xiàn)天天酷跑功能

 更新時(shí)間:2021年01月06日 10:43:20   作者:Gtieguo  
這篇文章主要介紹了基于Python實(shí)現(xiàn)天天酷跑功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

感覺上次寫的植物大戰(zhàn)僵尸與俄羅斯方塊的反應(yīng)還不錯(cuò),這次這個(gè)文章就更有動(dòng)力了
這次就寫一個(gè)天天酷跑吧

在這里插入圖片描述

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

import pygame,sys
import random

寫一下游戲配置

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é)束)

寫人物

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

寫背景

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é)束畫面
 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:
  #背景的移動(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 #避開障礙物,加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è)天天酷跑的全部代碼啦,有問題可以留言,我看到都會(huì)回的。

到此這篇關(guān)于基于Python實(shí)現(xiàn)天天酷跑功能的文章就介紹到這了,更多相關(guān)Python寫天天酷跑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python DataFrame 設(shè)置輸出不顯示index(索引)值的方法

    Python DataFrame 設(shè)置輸出不顯示index(索引)值的方法

    今天小編就為大家分享一篇Python DataFrame 設(shè)置輸出不顯示index(索引)值的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2018-06-06
  • cv2.getStructuringElement()函數(shù)及開、閉、腐蝕、膨脹原理講解

    cv2.getStructuringElement()函數(shù)及開、閉、腐蝕、膨脹原理講解

    getStructuringElement()函數(shù)可用于構(gòu)造一個(gè)特定大小和形狀的結(jié)構(gòu)元素,用于圖像形態(tài)學(xué)處理,這篇文章主要介紹了cv2.getStructuringElement()函數(shù)及開、閉、腐蝕、膨脹原理講解的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 利用pytorch實(shí)現(xiàn)對(duì)CIFAR-10數(shù)據(jù)集的分類

    利用pytorch實(shí)現(xiàn)對(duì)CIFAR-10數(shù)據(jù)集的分類

    今天小編就為大家分享一篇利用pytorch實(shí)現(xiàn)對(duì)CIFAR-10數(shù)據(jù)集的分類,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-01-01
  • Python執(zhí)行時(shí)間的計(jì)算方法小結(jié)

    Python執(zhí)行時(shí)間的計(jì)算方法小結(jié)

    這篇文章主要介紹了Python執(zhí)行時(shí)間的計(jì)算方法小結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • 用Python制作簡(jiǎn)單的鋼琴程序的教程

    用Python制作簡(jiǎn)單的鋼琴程序的教程

    這篇文章主要介紹了用Python制作簡(jiǎn)單的鋼琴程序的教程,用鍵盤演奏、包括變速和變調(diào)等功能的實(shí)現(xiàn),需要的朋友可以參考下
    2015-04-04
  • python用類實(shí)現(xiàn)文章敏感詞的過濾方法示例

    python用類實(shí)現(xiàn)文章敏感詞的過濾方法示例

    這篇文章主要介紹了python用類實(shí)現(xiàn)文章敏感詞的過濾方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • python中json.dumps()和json.loads()的用法

    python中json.dumps()和json.loads()的用法

    json.dumps()和json.loads()?json.dumps()用于將字典形式轉(zhuǎn)換為字符串,下面這篇文章主要給大家介紹了關(guān)于python中json.dumps()和json.loads()用法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 基于Python實(shí)現(xiàn)西西成語(yǔ)接龍小助手

    基于Python實(shí)現(xiàn)西西成語(yǔ)接龍小助手

    成語(yǔ)接龍是中華民族傳統(tǒng)的文字游戲。本文將用Python制作一個(gè)簡(jiǎn)單的成語(yǔ)接龍小程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-08-08
  • 利用Python發(fā)送郵件或發(fā)帶附件的郵件

    利用Python發(fā)送郵件或發(fā)帶附件的郵件

    這篇文章主要介紹了如何利用Python發(fā)送郵件或發(fā)帶附件的郵件,幫助大家更好的理解和使用python,感興趣的朋友可以了解下。
    2020-11-11
  • Pycharm快速安裝OpenCV的詳細(xì)操作步驟

    Pycharm快速安裝OpenCV的詳細(xì)操作步驟

    Pycharm中使用OpenCV,其實(shí)也就是用Python語(yǔ)言調(diào)用OpenCV,下面這篇文章主要給大家介紹了關(guān)于Pycharm快速安裝OpenCV的詳細(xì)操作步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07

最新評(píng)論