Python完美复原超级玛丽游戏附代码与视频
发布时间:2021-11-09 05:29:03 所属栏目:教程 来源:互联网
导读:目录 导语正文1)准备中1.1环境安装1.2图片素材+背景音乐+字体(可修改)2)开始敲代码2.1 运行程序:mario_level_1.py。2.2 配置音乐文字等setup.py。2.3游戏音乐设置game_sound.py。2.4取得的分数3)完整的游戏4)效果展示(仅部分)4.1 展示动态视频一波,
目录 导语���正文���1)准备中���1.1环境安装���1.2图片素材+背景音乐+字体(可修改)���2)开始敲代码���2.1 运行程序:mario_level_1.py。���2.2 配置音乐文字等setup.py。���2.3游戏音乐设置game_sound.py。���2.4取得的分数���3)完整的游戏���4)效果展示(仅部分)���4.1 展示动态视频一波,完美。���4.2 Part 1 游戏运行界面——���4.3 Part 2 三条命——���4.4 Part 3 吃了蘑菇的马里奥——���总结��� 导语��� 哈喽!哈喽!我是木木子���,今日游戏更新——超级玛丽华丽上线���啦! “超级玛丽”有多少人还记得这款经典游戏?对于90、00后应该不大熟悉,但多多少少印象中见过 那个戴帽子的大胡子穿着背带裤的马里奥���! ���这款游戏1985年发售,因上手简单、情节有趣等因素迅速走红! 陪伴70后、80后走过了青涩难忘的童年超级玛丽成了大家心目中的经典! 如果你的童年也曾被魔性的 灯~灯灯~灯~灯灯~灯洗脑那就接着来怀旧一番吧~ 今天木木子就带着大家自制一款超级玛丽游戏,还原度超高哦~还在等什么动动手就能拥有属于自 己的”超级玛丽“游戏呢,赶快学起来吧���������������~ 正文��� 嗯呐~写游戏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 cProfile if __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 c ORIGINAL_CAPTION = c.ORIGINAL_CAPTION os.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 c class Sound(object): """Handles all sound for the game""" def __init__(self, overhead_info): """Initialize the class""" self.sfx_dict = setup.SFX self.music_dict = setup.MUSIC self.overhead_info = overhead_info self.game_info = overhead_info.game_info self.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.NORMAL elif self.overhead_info.state == c.GAME_OVER: pg.mixer.music.load(self.music_dict['game_over']) pg.mixer.music.play() self.state = c.GAME_OVER def update(self, game_info, mario): """Updates sound object with game info""" self.game_info = game_info self.mario = mario self.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_DOWN elif self.state == c.FAST_COUNT_DOWN: if self.overhead_info.time == 0: self.sfx_dict['count_down'].stop() self.state = c.WORLD_CLEAR elif 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: pass elif self.state == c.MARIO_DEAD: pass elif self.state == c.GAME_OVER: pass def play_music(self, key, state): """Plays new music""" pg.mixer.music.load(self.music_dict[key]) pg.mixer.music.play() self.state = state def stop_music(self): """Stops playback""" pg.mixer.music.stop() (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |