日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

全网最强Python版《超级玛丽》小游戏,我还是你的马里奥嘛?

發布時間:2025/3/21 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 全网最强Python版《超级玛丽》小游戏,我还是你的马里奥嘛? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前文

大家好!我是梨子同學!

希望大家多多支持我!哈哈

為了感謝每一個關注我的小可愛:💓每篇文章的項目源碼都是無償分享滴💓見文末

很多csdn的功能還在研究中,還有小編的文筆不好勿怪,會慢慢進步跟大家一起學習的

小編也一直在學習編程,如果代碼小程序出現錯誤歡迎大家評論區留言哈!

最后——如果文章有幫助到你,記得“關注”、“點贊”、“評論”三連哦~
?

導語🎁

哈嘍!哈嘍!我是梨子,今天給大家上線一款超級好玩有趣的童年游戲!

當當當——超級瑪麗!

?正文🎁

嗯吶~寫游戲Python還是用的Pygame模塊啦

1)準備中🛒

1.1環境安裝🎑

Python3、Pycharm、Pygame模塊很多自帶的模塊等。

模塊安裝統一用的豆瓣鏡像源:?

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

1.2圖片素材+背景音樂+字體(可修改)🎑

2)開始敲代碼🛒

2.1 運行程序:mario_level_1.py。🎑

#!/usr/bin/env python __author__ = '超級瑪麗-源碼基地'""" This is an attempt to recreate the first level of Super Mario Bros for the NES. """import sys import pygame as pg from data.main import main import cProfileif __name__=='__main__':main()pg.quit()sys.exit()

2.2 配置音樂文字等setup.py。🎑

__author__ = 'Python源碼基地'""" This module initializes the display and creates dictionaries of resources. """import os import pygame as pg from . import tools from .import constants as cORIGINAL_CAPTION = c.ORIGINAL_CAPTIONos.environ['SDL_VIDEO_CENTERED'] = '1' pg.init() pg.event.set_allowed([pg.KEYDOWN, pg.KEYUP, pg.QUIT]) pg.display.set_caption(c.ORIGINAL_CAPTION) SCREEN = pg.display.set_mode(c.SCREEN_SIZE) SCREEN_RECT = SCREEN.get_rect()FONTS = tools.load_all_fonts(os.path.join("resources","fonts")) MUSIC = tools.load_all_music(os.path.join("resources","music")) GFX = tools.load_all_gfx(os.path.join("resources","graphics")) SFX = tools.load_all_sfx(os.path.join("resources","sound"))

2.3游戲音樂設置game_sound.py。🎑

__author__ = 'Python顧木子吖'import pygame as pg from . import setup from . import constants as cclass Sound(object):"""Handles all sound for the game"""def __init__(self, overhead_info):"""Initialize the class"""self.sfx_dict = setup.SFXself.music_dict = setup.MUSICself.overhead_info = overhead_infoself.game_info = overhead_info.game_infoself.set_music_mixer()def set_music_mixer(self):"""Sets music for level"""if self.overhead_info.state == c.LEVEL:pg.mixer.music.load(self.music_dict['main_theme'])pg.mixer.music.play()self.state = c.NORMALelif self.overhead_info.state == c.GAME_OVER:pg.mixer.music.load(self.music_dict['game_over'])pg.mixer.music.play()self.state = c.GAME_OVERdef update(self, game_info, mario):"""Updates sound object with game info"""self.game_info = game_infoself.mario = marioself.handle_state()def handle_state(self):"""Handles the state of the soundn object"""if self.state == c.NORMAL:if self.mario.dead:self.play_music('death', c.MARIO_DEAD)elif self.mario.invincible \and self.mario.losing_invincibility == False:self.play_music('invincible', c.MARIO_INVINCIBLE)elif self.mario.state == c.FLAGPOLE:self.play_music('flagpole', c.FLAGPOLE)elif self.overhead_info.time == 100:self.play_music('out_of_time', c.TIME_WARNING)elif self.state == c.FLAGPOLE:if self.mario.state == c.WALKING_TO_CASTLE:self.play_music('stage_clear', c.STAGE_CLEAR)elif self.state == c.STAGE_CLEAR:if self.mario.in_castle:self.sfx_dict['count_down'].play()self.state = c.FAST_COUNT_DOWNelif self.state == c.FAST_COUNT_DOWN:if self.overhead_info.time == 0:self.sfx_dict['count_down'].stop()self.state = c.WORLD_CLEARelif self.state == c. TIME_WARNING:if pg.mixer.music.get_busy() == 0:self.play_music('main_theme_sped_up', c.SPED_UP_NORMAL)elif self.mario.dead:self.play_music('death', c.MARIO_DEAD)elif self.state == c.SPED_UP_NORMAL:if self.mario.dead:self.play_music('death', c.MARIO_DEAD)elif self.mario.state == c.FLAGPOLE:self.play_music('flagpole', c.FLAGPOLE)elif self.state == c.MARIO_INVINCIBLE:if (self.mario.current_time - self.mario.invincible_start_timer) > 11000:self.play_music('main_theme', c.NORMAL)elif self.mario.dead:self.play_music('death', c.MARIO_DEAD)elif self.state == c.WORLD_CLEAR:passelif self.state == c.MARIO_DEAD:passelif self.state == c.GAME_OVER:passdef play_music(self, key, state):"""Plays new music"""pg.mixer.music.load(self.music_dict[key])pg.mixer.music.play()self.state = statedef stop_music(self):"""Stops playback"""pg.mixer.music.stop()

2.4取得的分數🎑

__author__ = '源碼基地:#959755565#'import pygame as pg from .. import setup from .. import constants as cclass Digit(pg.sprite.Sprite):"""Individual digit for score"""def __init__(self, image):super(Digit, self).__init__()self.image = imageself.rect = image.get_rect()class Score(object):"""Scores that appear, float up, and disappear"""def __init__(self, x, y, score, flag_pole=False):self.x = xself.y = yif flag_pole:self.y_vel = -4else:self.y_vel = -3self.sprite_sheet = setup.GFX['item_objects']self.create_image_dict()self.score_string = str(score)self.create_digit_list()self.flag_pole_score = flag_poledef create_image_dict(self):"""Creates the dictionary for all the number 圖片 needed"""self.image_dict = {}image0 = self.get_image(1, 168, 3, 8)image1 = self.get_image(5, 168, 3, 8)image2 = self.get_image(8, 168, 4, 8)image4 = self.get_image(12, 168, 4, 8)image5 = self.get_image(16, 168, 5, 8)image8 = self.get_image(20, 168, 4, 8)image9 = self.get_image(32, 168, 5, 8)image10 = self.get_image(37, 168, 6, 8)image11 = self.get_image(43, 168, 5, 8)self.image_dict['0'] = image0self.image_dict['1'] = image1self.image_dict['2'] = image2self.image_dict['4'] = image4self.image_dict['5'] = image5self.image_dict['8'] = image8self.image_dict['3'] = image9self.image_dict['7'] = image10self.image_dict['9'] = image11def get_image(self, x, y, width, height):"""Extracts image from sprite sheet"""image = pg.Surface([width, height]).convert()rect = image.get_rect()image.blit(self.sprite_sheet, (0, 0), (x, y, width, height))image.set_colorkey(c.BLACK)image = pg.transform.scale(image,(int(rect.width*c.BRICK_SIZE_MULTIPLIER),int(rect.height*c.BRICK_SIZE_MULTIPLIER)))return imagedef create_digit_list(self):"""Creates the group of 圖片 based on score received"""self.digit_list = []self.digit_group = pg.sprite.Group()for digit in self.score_string:self.digit_list.append(Digit(self.image_dict[digit]))self.set_rects_for_images()def set_rects_for_images(self):"""Set the rect attributes for each image in self.image_list"""for i, digit in enumerate(self.digit_list):digit.rect = digit.image.get_rect()digit.rect.x = self.x + (i * 10)digit.rect.y = self.ydef update(self, score_list, level_info):"""Updates score movement"""for number in self.digit_list:number.rect.y += self.y_velif score_list:self.check_to_delete_floating_scores(score_list, level_info)if self.flag_pole_score:if self.digit_list[0].rect.y <= 120:self.y_vel = 0def draw(self, screen):"""Draws score numbers onto screen"""for digit in self.digit_list:screen.blit(digit.image, digit.rect)def check_to_delete_floating_scores(self, score_list, level_info):"""Check if scores need to be deleted"""for i, score in enumerate(score_list):if int(score.score_string) == 1000:if (score.y - score.digit_list[0].rect.y) > 130:score_list.pop(i)else:if (score.y - score.digit_list[0].rect.y) > 75:score_list.pop(i)

?3)完整的游戲🛒

由于代碼太多太多了如下圖所示:所以還是放在文末自己拿完整的代碼哈!

?4)效果展示(僅部分)🛒

4.1 Part 1 游戲運行界面——🎑

?4.2 Part 2 三條命——🎑

4.3 Part 3 吃了蘑菇的馬里奧——🎑

總結🎁

雖然現在市面上沖擊著各種游戲,但在我們心目中馬里奧依舊是那個留著意式大胡子,上天盾地,

無所不能,頭頂金幣,腳踏烏龜拯救公主的超級英雄!

對游戲感興趣的小伙伴兒趕緊自己動手造一個吧~

?

你們的支持是我最大的動力!!記得三連哦~mua?歡迎大家閱讀往期的文章哦~

關注小編獲取更多精彩內容!

?制作不易,記得一鍵三連哦!!?如需打包好的源碼+素材免費分享滴!傳送門

總結

以上是生活随笔為你收集整理的全网最强Python版《超级玛丽》小游戏,我还是你的马里奥嘛?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本爽妇网 | 色就是色av | 男女毛片视频 | 日韩一级黄色录像 | 欧美整片第一页 | 兔费看少妇性l交大片免费 日韩高清不卡 | 欧美性极品少妇xxxx | 国产香蕉av | 日韩一区二区三区在线看 | 女人扒开屁股让我添 | 成人精品久久久 | 国产人妖网站 | brazzers欧美极品少妇 | 久久久久久久久免费看无码 | 国产色呦呦 | 亚洲图片欧美视频 | 成年人黄色大片 | 日韩精品国产精品 | 色骚网 | 九草视频在线观看 | 国产精品一区二区在线观看 | 日韩亚洲欧美一区 | 日本不卡视频在线播放 | 黑人爱爱视频 | japanesexxxx日本妞 | 国产交换配乱淫视频免费 | 日本午夜激情视频 | 致命弯道8在线观看免费高清完整 | 东方成人av | 国产欧美一区二区三区四区 | 丁香五香天堂 | 精品亚洲国产成人av制服丝袜 | 性久久| 逼逼av| 成人听书哪个软件好 | 美女扒开让男人桶爽 | av第一页 | 日本一区二区久久 | 一级免费在线观看 | 亚洲一区 中文字幕 | 亚洲一区不卡 | 91麻豆精品国产91久久久无需广告 | 中国毛片视频 | 神马午夜伦 | 久久国产精品波多野结衣 | 国产精品不卡 | 香蕉影院在线 | 无码精品一区二区三区在线播放 | 国产在线久久久 | 国产亚洲第一页 | 男女日批在线观看 | 伊人久久久久久久久久久久久 | 亚洲视频网站在线 | 欧美日韩一区二区三区四区五区 | 成人勉费视频 | 官场艳妇疯狂性关系 | 色草在线 | 久久精品国产亚洲av麻豆 | 亚洲乱码国产乱码精品精 | 欧美专区第一页 | 日韩中文字幕在线一区 | 综合色亚洲 | 亚洲精品成a人在线观看 | 久久发布国产伦子伦精品 | 一区二区三区视频免费视 | 久草手机在线视频 | 日日摸夜夜添夜夜添高潮喷水 | 国产极品一区二区 | 亚洲视频国产视频 | 人成免费在线视频 | 亚洲卡一卡二 | 欧美风情第一页 | 99国产精品久久久久久久成人热 | 亚洲欧美成人一区二区 | 爆操av | 一区二区三区免费高清视频 | 婷婷天堂网 | 天天射网站| 国产精品传媒视频 | 免费av看片 | 久久久久无码国产精品不卡 | 日韩不卡一区二区三区 | 91免费大片 | 免费看大片a | 亚洲综合欧美综合 | 国产经典一区二区 | 国产一区二区三区免费观看 | 情侣在线视频 | 精品国产黄色 | 国产粉嫩一区二区三区 | 视频在线一区二区三区 | 日av中文字幕| 一级久久 | 制服丝袜一区在线 | 日本少妇一级 | 亚洲女优在线 | 亚洲三级小说 | 免费在线观看污网站 | 国产精品午夜福利 |