首页 手机游戏 手机软件 新闻 攻略 手游礼包 手游开测 手游合集 手游专区 排行榜

超级玛丽猫下载(超级玛丽猫下载,无敌版)

时间:2022-04-08 13:26:59

小编:一只程序媛呀

阅读:

在手机上看
手机扫描阅读
导语

哈喽!哈喽!我是木木子,今日游戏更新——超级玛丽华丽上线啦

“超级玛丽”有多少人还记得这款经典游戏?对于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__ = '超级玛丽-源码基地:#959755565#'"""This is an attempt to recreate the first level ofSuper Mario Bros for the NES."""import sysimport pygame as pgfrom data.main import mainimport cProfileif __name__=='__main__': main() pg.quit() sys.exit()2.2 配置音乐文字等setup.py。

__author__ = 'Python源码基地:#959755565#人'"""This module initializes the display and creates dictionaries of resources."""import osimport pygame as pgfrom . import toolsfrom .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源码基地:#959755565#'import pygame as pgfrom . import setupfrom . import constants as cclass 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()2.4取得的分数

__author__ = '源码基地:#959755565#'import pygame as pgfrom .. import setupfrom .. import constants as cclass Digit(pg.sprite.Sprite): """Individual digit for score""" def __init__(self, image): super(Digit, self).__init__() self.image = image self.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 = x self.y = y if flag_pole: self.y_vel = -4 else: self.y_vel = -3 self.sprite_sheet = setup.GFX['item_objects'] self.create_image_dict() self.score_string = str(score) self.create_digit_list() self.flag_pole_score = flag_pole def 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'] = image0 self.image_dict['1'] = image1 self.image_dict['2'] = image2 self.image_dict['4'] = image4 self.image_dict['5'] = image5 self.image_dict['8'] = image8 self.image_dict['3'] = image9 self.image_dict['7'] = image10 self.image_dict['9'] = image11 def 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 image def 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.y def update(self, score_list, level_info): """Updates score movement""" for number in self.digit_list: number.rect.y += self.y_vel if 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 = 0 def 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.0 展示动态视频一波,完美。

超级玛丽猫下载(超级玛丽猫下载,无敌版)

超级马里奥动态视频

4.1 Part 1 游戏运行界面——

超级玛丽猫下载(超级玛丽猫下载,无敌版)

​4.2 Part 2 三条命——

超级玛丽猫下载(超级玛丽猫下载,无敌版)

4.3 Part 3 吃了蘑菇的马里奥——

超级玛丽猫下载(超级玛丽猫下载,无敌版)

总结

虽然现在市面上冲击着各种游戏,但在我们心目中马里奥依旧是那个留着意式大胡子,上天遁地,

无所不能,头顶金币,脚踏乌龟拯救公主的超级英雄!

对游戏感兴趣的小伙伴儿赶紧自己动手造一个吧~

超级玛丽猫下载(超级玛丽猫下载,无敌版)

​​

你们的支持是我最大的动力!!记得三连哦~mua 欢迎大家阅读往期的文章哦~

关注小编获取更多精彩内容!私信小编06获取源码吖!

超级玛丽猫下载(超级玛丽猫下载,无敌版)

​​

本文标签:

相关阅读 更多
  • 火影忍者疾风传究极风暴2(火影忍者疾风传究极风暴2出招表)
    火影忍者疾风传究极风暴2(火影忍者疾风传究极风暴2出招表)
    大家好,最近在家无聊,整体看动漫,犬夜叉和火影忍者,魔兵传奇,看来看去还是火影忍者比较好看,刚好想起来电脑好像还有一款火影忍者游戏,火影忍者究极风暴3,这款游戏挺不错的,喜欢看火
    时间:2022-04-22
  • 火影忍者疾风传(火影忍者疾风传游戏)
    火影忍者疾风传(火影忍者疾风传游戏)
    IT之家 10 月 10 日消息 卡西欧方面今日宣布,G-SHOCK・火影忍者疾风传联名第一弹热血登场,新品将于 10 月 20 日 20:00 开启预售。IT之家了解到,G-SHOCK ・火影忍者疾风传联名
    时间:2022-04-22
  • 火影忍者羁绊57(火影忍者羁绊571隐藏密码)
    火影忍者羁绊57(火影忍者羁绊571隐藏密码)
    为大家带来的是放开那三国新四橙将高玩分析攻略,希望玩家们喜欢。放开那三国最先玩的是魏国,所以习惯性的先玩魏国,这次是橙卡乐进,分析下技能在普通很攻击横排,伤害比较紫卡增加
    时间:2022-04-22
  • 火影忍者羁绊53(火影忍者羁绊5.2无cd无限蓝p闪版)
    火影忍者羁绊53(火影忍者羁绊5.2无cd无限蓝p闪版)
    澎湃新闻记者 杨茜2021年即将悄悄溜走,观众们一年到头从综艺里获得的快乐和思考要有个句号的总结了,回看这一年的节目,国产综艺创意在不断爆发,质量在飞速提升,品位和质感都上了
    时间:2022-04-22
  • 火影忍者羁绊41隐藏英雄密码(火影忍者羁绊20隐藏英雄密码)
    火影忍者羁绊41隐藏英雄密码(火影忍者羁绊20隐藏英雄密码)
    “啪!”醒木拍桌,一个穿着金色马褂的中年男人出现在了画面中——大圆脑袋,白白净净,体态丰满,气定神闲。只见他坐在桌后,双手搭在桌上,桌上除了醒木还有一把折扇和一块白绢,来人一看
    时间:2022-04-22
无敌

无敌

  • 类型:策略棋牌
  • 语言:中文
  • 大小:
  • 版本: 最新版
  • 星级:
简介:无敌手游中玩家来到经典三国乱世中,展开刺激的战斗之旅。游戏画面恢弘大气,人物卡通可爱,以独创的沉浸式剧情体验为主,完美还原三国乱世中的场景,给玩家带来极致的视觉盛宴和无限
立即下载