python玛丽冒险超级游戏程序源码
wx供重浩:創(chuàng)享日記
對(duì)話(huà)框發(fā)送:python瑪麗
免費(fèi)獲取完整源碼源文件+配置教程說(shuō)明+可執(zhí)行文件
在PyCharm中運(yùn)行《瑪麗冒險(xiǎn)》即可進(jìn)入如圖1所示的游戲主界面。
具體的操作步驟如下:
(1)游戲主窗體界面顯示后,游戲的背景地圖將自動(dòng)加載與移動(dòng),此時(shí)會(huì)隨機(jī)出現(xiàn)管道、導(dǎo)彈障礙物。當(dāng)遇到障礙物時(shí)按下鍵盤(pán)中的空格按鍵,瑪麗將實(shí)現(xiàn)跳躍,如圖2所示。
(2)每當(dāng)越過(guò)一次障礙時(shí),右上角的積分將自動(dòng)增加1分。如圖3所示。
(3)如果瑪麗在移動(dòng)的過(guò)程中不小心撞到了障礙物,此時(shí)游戲主界面的中間位置將顯示“Game Over”游戲結(jié)束的文字。如圖4所示。
游戲結(jié)束后,再次按下空格鍵將重新啟動(dòng)游戲。
(4)如果不需要播放游戲的背景音樂(lè)時(shí),可以單擊左上角的音樂(lè)按鈕,背景音樂(lè)播放時(shí),控制按鈕的運(yùn)行效果如圖5所示。背景音樂(lè)停止時(shí),控制按鈕的運(yùn)行效果如圖6所示。
部分源碼如下,其余完整詳見(jiàn)下載。
import random # 隨機(jī)數(shù) # 障礙物類(lèi) class Obstacle():score = 1 # 分?jǐn)?shù)move = 5 # 移動(dòng)距離obstacle_y = 150 # 障礙物y坐標(biāo)def __init__(self):# 初始化障礙物矩形self.rect = pygame.Rect(0, 0, 0, 0)# 加載障礙物圖片self.missile = pygame.image.load("image/missile.png").convert_alpha()self.pipe = pygame.image.load("image/pipe.png").convert_alpha()# 加載分?jǐn)?shù)圖片self.numbers = (pygame.image.load('image/0.png').convert_alpha(),pygame.image.load('image/1.png').convert_alpha(),pygame.image.load('image/2.png').convert_alpha(),pygame.image.load('image/3.png').convert_alpha(),pygame.image.load('image/4.png').convert_alpha(),pygame.image.load('image/5.png').convert_alpha(),pygame.image.load('image/6.png').convert_alpha(),pygame.image.load('image/7.png').convert_alpha(),pygame.image.load('image/8.png').convert_alpha(),pygame.image.load('image/9.png').convert_alpha())# 加載加分音效self.score_audio = pygame.mixer.Sound('audio/score.wav') # 加分# 0和1隨機(jī)數(shù)r = random.randint(0, 1)if r == 0: # 如果隨機(jī)數(shù)為0顯示導(dǎo)彈障礙物相反顯示管道self.image = self.missile # 顯示導(dǎo)彈障礙self.move = 15 # 移動(dòng)速度加快self.obstacle_y = 100 # 導(dǎo)彈坐標(biāo)在天上else:self.image = self.pipe # 顯示管道障礙# 根據(jù)障礙物位圖的寬高來(lái)設(shè)置矩形self.rect.size = self.image.get_size()# 獲取位圖寬高self.width, self.height = self.rect.size# 障礙物繪制坐標(biāo)self.x = 800self.y = self.obstacle_yself.rect.center = (self.x, self.y)# 障礙物移動(dòng)def obstacle_move(self):self.rect.x -= self.move# 繪制障礙物def draw_obstacle(self):SCREEN.blit(self.image, (self.rect.x, self.rect.y))# 獲取分?jǐn)?shù)def getScore(self):self.scoretmp = self.score;if tmp == 1:self.score_audio.play() # 播放加分音樂(lè)self.score = 0;return tmp;# 顯示分?jǐn)?shù)def showScore(self, score):# 獲取得分?jǐn)?shù)字self.scoreDigits = [int(x) for x in list(str(score))]totalWidth = 0 # 要顯示的所有數(shù)字的總寬度for digit in self.scoreDigits:# 獲取積分圖片的寬度totalWidth += self.numbers[digit].get_width()# 分?jǐn)?shù)橫向位置Xoffset = (SCREENWIDTH - (totalWidth+30))for digit in self.scoreDigits:# 繪制分?jǐn)?shù)SCREEN.blit(self.numbers[digit], (Xoffset, SCREENHEIGHT * 0.1))# 隨著數(shù)字增加改變位置Xoffset += self.numbers[digit].get_width()是任天堂出品的著名橫版過(guò)關(guān)游戲,該作最早在紅白機(jī)上推出,有多款后續(xù)作品,其中的主角馬里奧、路易、碧奇公主、奇諾比奧等已成為任天堂的招牌人物[1]。在游戲中,玩家控制馬里奧從庫(kù)巴手上設(shè)法營(yíng)救碧奇公主。馬里奧的弟弟路易只能在游戲的多人模式中作為第二玩家加入,其角色情節(jié)與馬里奧完全相同。馬里奧是靠吃蘑菇成長(zhǎng),聞名世界的超級(jí)巨星。特征是大鼻子、頭戴帽子、身穿背帶工作服、還留著胡子。與他的雙胞胎兄弟路易基一起,長(zhǎng)年擔(dān)任任天堂的招牌角色。帽子加背帶工作服、大鼻子和胡子等特征,離英雄的形象相差甚遠(yuǎn)。再加上少許肥胖的身材,稍不留神可能就會(huì)把我們的英雄馬里奧當(dāng)成在便利店打工的中年大叔。但是形象上所帶來(lái)的個(gè)性和親切感,卻在玩家的心中根深蒂固。馬里奧的誕生之父宮本茂的設(shè)計(jì)理念就是“像記號(hào)一般讓人一目了然的外貌,容易表現(xiàn)動(dòng)作的配色”。當(dāng)時(shí)限于硬件的機(jī)能,無(wú)法表現(xiàn)精密的畫(huà)面。為了清楚表現(xiàn)人物的動(dòng)作,就把馬里奧的服裝設(shè)計(jì)成了背帶工作服,這樣可以很好地表現(xiàn)出手臂的動(dòng)作。關(guān)于臉部的設(shè)計(jì),當(dāng)時(shí)的考慮是,就算設(shè)計(jì)得很仔細(xì),在電視上也無(wú)法表現(xiàn)出來(lái)。有特點(diǎn)、容易辨認(rèn),才是設(shè)計(jì)的重點(diǎn)。所以就有了大鼻子、留胡子、戴帽子的設(shè)計(jì)。
總結(jié)
以上是生活随笔為你收集整理的python玛丽冒险超级游戏程序源码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【网络协议】TCP和HTTP中keep
- 下一篇: C#委托和事件的概念