Python经典游戏:超级玛丽,附源码

超级玛丽是一款经典的横版冒险过关游戏,由任天堂公司出品。这款游戏的背景设定在一个充满奇幻色彩的世界中,玩家需要控制主角马里奥(Mario)在不同的平台上跳跃、奔跑,并克服各种障碍,以拯救被邪恶力量绑架的公主并打败邪恶的敌人。

在游戏中,玩家可以通过方向键移动马里奥,上键跳跃,获得火焰花后按空格键可射击火焰弹。游戏的操作需要玩家精确控制跳跃的高度和距离,这是游戏中最基本的操作技巧。同时,收集金币也是游戏中非常重要的环节,金币可以增加玩家的得分并提供额外的生命值。在关卡中还会出现各种道具盒子,玩家可以跳跃到盒子上方按下空格键来获取道具,如超级蘑菇可以让马里奥变大,火焰花可以发射火球等。

游戏的难度逐渐提升,每个世界的最后一个关卡都有一个Boss战,玩家需要借助关卡中的道具和技巧来战胜Boss。同时,游戏中还设有多种难度级别和关卡,让玩家可以不断挑战自己的极限。除了游戏玩法,超级玛丽的音乐和图形也非常出色,给人留下深刻的印象。动感的背景音乐能勾起童年的美好回忆。角色形象和游戏音乐都具有独特的风格,成为了游戏界的经典之作。

游戏完整的图片+声音+源码+字体,等素材资源,都打包在一块了。需要的朋友,点击文字获取

图片

2.游戏的基本玩法:进入游戏界面后,按回车键选择游戏的等级,等级选择后,按回车键加载游戏。移动:使用方向键控制马里奥向左或向右移动。

跳跃:按下空格键控制马里奥跳跃。根据按键的持续时间,可以控制跳跃的高度和距离。

图片

↓ 源码如下 ↓

# -*- coding: utf-8 -*-
# @Author : 王屋叁
# 微信公众号:Python玉玉子
import pygame
from classes.Dashboard import Dashboard
from classes.Level import Level
from classes.Menu import Menu
from classes.Sound import Sound
from entities.Mario import Mario

windowSize = 640, 480

def main():
    pygame.mixer.pre_init(44100, -16, 2, 4096)
    pygame.init()
    screen = pygame.display.set_mode(windowSize)
    max_frame_rate = 60
    dashboard = Dashboard("./img/font.png", 8, screen)
    sound = Sound()
    level = Level(screen, sound, dashboard)
    menu = Menu(screen, dashboard, level, sound)

    while not menu.start:
        menu.update()

    mario = Mario(0, 0, level, screen, dashboard, sound)
    clock = pygame.time.Clock()

    while not mario.restart:
        pygame.display.set_caption("Super Mario running with {:d} FPS".format(int(clock.get_fps())))
        if mario.pause:
            mario.pauseObj.update()
        else:
            level.drawLevel(mario.camera)
            dashboard.update()
            mario.update()
        pygame.display.update()
        clock.tick(max_frame_rate)
    return 'restart'


if __name__ == "__main__":
    exitmessage = 'restart'
    while exitmessage == 'restart':
        exitmessage = main()

更多Python学习资料请戳👇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值