亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                游戲全面“入侵”生活:Python發(fā)布“酷跑+”計劃

                游戲全面“入侵”生活:Python發(fā)布“酷跑+”計劃

                導(dǎo)語

                “ 急速奔跑——享受生活中的美好時光!”

                ——夢想

                重磅消息!木木子今天又要給大家介紹一款新游戲啦!

                期待不期待呀來我們先來看看是什么游戲讓大家這么沸騰

                《天天酷跑》這款游戲有好幾年的歷史了,當(dāng)初確實是十分火爆,還記得自己第一次接觸這款游戲

                是在高考后的暑假,因為那個假期比較長,就去一家服裝店打工了,閑下來的時候店里的人就在玩游戲

                天天酷跑,為了能有話題聊就入坑了,后來發(fā)現(xiàn)還有不少同學(xué)也都在玩,而且分?jǐn)?shù)比自己高好多。

                現(xiàn)在算算大概過去六七年了,自己早已放棄天天酷跑了。

                可能因為天天酷跑是自己接觸的第一款手游吧,印象比較深刻——現(xiàn)在好不容易下載進(jìn)去發(fā)現(xiàn)很多

                規(guī)則都改了,捂臉.jpg

                完全不會操作了。這不?準(zhǔn)備做一款Python版簡易的《天天跑酷》小游戲,順便回一下童年撒!

                小簡介:

                《天天酷跑》是騰訊移動游戲平臺專為海量微信和手機(jī)QQ用戶量身打造的一款精品手機(jī)游戲。

                在沿襲傳統(tǒng)玩法的基礎(chǔ)上,特別加入了閃靚坐騎、萌動寵物等一系列心動設(shè)計,為玩家?guī)碜顬榈?/p>

                心應(yīng)手的跑酷體驗。隨時隨地與微信、QQ好友一起玩,搶占排行榜、愛心送不停、高分炫出來!貼

                心交互讓你和好友親密無間,分享炫耀讓你備受好友關(guān)注,成為酷跑達(dá)人!

                大聲告訴你的好友:跑酷從此不一樣!

                正文

                本文是Pygame游戲模塊制作的《天天跑酷》小游戲啦~

                一、準(zhǔn)備中

                好啦!我們正式開始準(zhǔn)備小游戲所需要的素材、環(huán)境吧!

                圖片素材:

                環(huán)境安裝:

                Python3.6、Pycharm2019(大部分版本都是可以運行的)、Pygame部分內(nèi)置模塊。

                模塊安裝:pip install -i https://pypi.douban.com/simple/ +模塊名

                1

                游戲規(guī)則:

                空格鍵跳躍、按一次短跳躍、按二次長跳躍,中間會出現(xiàn)很多障礙物,還有相應(yīng)的金幣等,游戲失敗后按空格鍵重新開始。

                二、游戲步驟

                1).游戲初始化

                利用pygame創(chuàng)建特定大小的游戲窗口。

                顯示游戲的初始界面,提示用戶開始游戲

                在游戲界面中設(shè)置背景圖片,并顯示人物、障礙物和金幣等物體。

                2).游戲控制

                人物自動向前奔跑,按空格鍵控制人物跳躍。

                利用addObstacle函數(shù)創(chuàng)建障礙物。

                利用updateScreen函數(shù)不斷更新界面中物體的顯示。

                3).碰撞檢測

                利用ListenKeyBoard函數(shù)監(jiān)控用戶的鍵盤輸入,并檢測人物和障礙物金幣等是否碰撞。

                人物和障礙物碰撞:當(dāng)檢測到人物和障礙物的位置信息有交集時,判斷為碰撞,人物生命值減一,障礙物消滅。

                人物和金幣碰撞:當(dāng)人物撞到金幣時,金幣消滅,得分+100。

                當(dāng)人物成功躲避障礙物時,得分+10。

                利用judgeState函數(shù)來判斷游戲是否結(jié)束。

                游戲結(jié)束時顯示最終得分,并提示用戶按“Enter”鍵重新開始游戲。

                三、正式敲代碼import pygame,sysimport random

                # 游戲配置width = 1200

                #窗口寬度height = 508

                #窗口高度size = width, height score=None

                #分?jǐn)?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

                #分?jǐn)?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(“移除了一個目標(biāo)”)

                #碰撞檢測

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

                def updateView(screen):

                #背景的貼圖

                screen.blit(bg.surface,[-bg.dx,0])

                screen.blit(bg.surface,[1200-bg.dx,0])

                #分?jǐn)?shù)的貼圖

                textSur=myFont.render(“score:%d”%score, True, (128, 128, 128))

                screen.blit(textSur, (500,20))

                del textSur

                #人物的貼圖 screen.blit(role.surface, [0, role.y], [int(role.currentFrame) * role.w, 0, role.w, role.h])

                #障礙物的貼圖

                for object in objectList:

                screen.blit(object.surface, [object.x, object.y], [int(object.currentFrame) * object.w, 0, object.w, object.h])

                def judgeState(screen):

                global gameState

                if gameState==0:

                updateView(screen)

                return elif gameState==1:

                screen.blit(surGameOver,[0,0])

                textSur = myFont1.render(“GameOver Score:%d”%score, True, (255, 0, 0)) screen.blit(textSur, (width/2-350, height/2+150))

                def main():

                pygame.init()

                screen = pygame.display.set_mode(size)

                pygame.display.set_caption(‘天天跑酷——CSDN:夢想)

                initGame()

                screen.blit(bg.surface,[0,0])

                while True:

                #設(shè)置時鐘頻率

                clock.tick(60)

                judgeState(screen)

                updateLogic()

                pygame.display.flip()main()

                四、效果展示

                視頻展示——

                游戲全面“入侵”生活:Python發(fā)布“酷跑+”計劃!

                截圖展示——

                游戲開始:

                跳躍、障礙物:

                游戲結(jié)束:

                總結(jié)

                看完這款游戲,是不是涌出滿滿的回憶呢:趁爸媽不在家時,偷偷打開電腦玩游戲

                剛買智能手機(jī)時,下載一兩個最火爆的游戲……

                現(xiàn)在看來,每一款游戲,都是時光的印記,你還有什么游戲回憶殺呢?之前也寫過很多童年經(jīng)典游戲可以去看看哈!

                碼字不易 點個關(guān)注行不行

                鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年6月29日 14:46
                下一篇 2022年6月29日 14:46

                相關(guān)推薦

                • 請問秀兒是你嗎什么梗

                  簡要回答 秀兒是你嗎這句話其實沒有貶義的含義,這句話的意思是形容內(nèi)容有趣,優(yōu)秀的意思。 現(xiàn)在很多人喜歡刷視頻,所以很多人會拍一些視頻供大家觀看,有些觀看者會在下面評論,有些人會評論…

                  2022年11月27日
                • dnf一鍵拾取(dnf一鍵拾取是全圖的嗎)

                  今天小編給各位分享dnf一鍵拾取的知識,其中也會對dnf一鍵拾取是全圖的嗎進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧! dnf如何一鍵拾取物品 dnf一鍵…

                  2022年11月27日
                • 《寶可夢朱紫》3天銷量破千萬(寶可夢朱紫3天銷量破千萬了)

                  開局只能選一種御三家,不能同時擁有全部這是游戲設(shè)計的劇情不能更改的。 已經(jīng)偷跑了寶可夢朱紫將于11月18日正式發(fā)售,而目前已有實體卡帶偷跑御三家進(jìn)化型終于在泄露了,新葉喵站了起來,…

                  2022年11月27日
                • 【周末玩什么】3天銷量破千萬的《寶可夢 朱/紫》,為何被評價為“又爛又好”

                  本周推薦《寶可夢 朱/紫》和《第七境》。 本月18號《寶可夢 朱/紫》全球發(fā)售。截至發(fā)稿日,本作的MC媒體均分從79分跌至75分,玩家評分更是只有可憐的2.9分。發(fā)售之初,國內(nèi)關(guān)于…

                  2022年11月27日
                • 存儲過程語法(sql server存儲過程語法)

                  今天小編給各位分享存儲過程語法的知識,其中也會對sql server存儲過程語法進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧! oracle存儲過程基本語法…

                  2022年11月26日
                • 微軟表示:《GTA6》預(yù)計將于2024年發(fā)售

                  微軟表示:《GTA6》預(yù)計將于2024年發(fā)售 近日,微軟在回應(yīng)英國競爭與市場管理局(CMA)調(diào)查其收購動視暴雪時提到,《GTA6》預(yù)計將在2024年發(fā)售。 “備受期待的《GTA6》…

                  2022年11月26日
                • 英雄聯(lián)盟手游好玩嗎(英雄聯(lián)盟手游好玩還是端游好玩)

                  簡要回答 非常好玩,英雄聯(lián)盟手游這款游戲已經(jīng)正式的進(jìn)行公測,這款游戲是以5v5為模式進(jìn)行對戰(zhàn)的,它是以英雄聯(lián)盟端游為原型進(jìn)行開發(fā),里面的每一種玩法基本都沿襲了端游的特點。 01 這…

                  2022年11月25日
                • 游戲平臺有哪些(游戲平臺有哪些)

                  簡要回答 游戲平臺指的是多人通過互聯(lián)網(wǎng)在線游戲的平臺,例如qq游戲,聯(lián)眾世界,浩方電競平臺,VS競技游戲平臺等,只要你下載平臺,下載相關(guān)游戲,就能實現(xiàn)對戰(zhàn),擺脫了局域網(wǎng)的限制。 詳…

                  2022年11月25日
                • 好玩的塔防游戲(好玩的單機(jī)塔防手機(jī)游戲)

                  簡要回答 對于游戲愛好者來說塔防游戲并不陌生,畢竟很多人一開始玩的就是塔防游戲,比如大家都知道的植物大戰(zhàn)僵尸,而且如今植物大戰(zhàn)僵尸還在大家的視野里面,很多博主也會用植物大戰(zhàn)僵尸玩很…

                  2022年11月25日
                • 2022金搖桿獎公布:《艾爾登法環(huán)》獨中四元,成為最大贏家

                  2022金搖桿獎全部獎項已經(jīng)公布,現(xiàn)象級熱門大作《艾爾登法環(huán)》拿下最佳多人游戲,評論家玩家選擇獎,最佳多人游戲,年度終極游戲等四項大獎,成為本次2022金搖桿獎的最大贏家。完整的獲…

                  2022年11月25日

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時間:周一至周五,10:30-18:30,節(jié)假日休息