python玛丽冒险超级游戏程序源码

简介: python玛丽冒险超级游戏程序源码

在PyCharm中运行《玛丽冒险》即可进入如图1所示的游戏主界面。


bc6d0f50febb13b28816672816914db.png

具体的操作步骤如下:

(1)游戏主窗体界面显示后,游戏的背景地图将自动加载与移动,此时会随机出现管道、导弹障碍物。当遇到障碍物时按下键盘中的空格按键,玛丽将实现跳跃,如图2所示。

2af27f2cad3e8172dd5226e0145d567.png


(2)每当越过一次障碍时,右上角的积分将自动增加1分。如图3所示。

8f3edf958dac9c8eb6d911e9435be3d.png


(3)如果玛丽在移动的过程中不小心撞到了障碍物,此时游戏主界面的中间位置将显示“Game Over”游戏结束的文字。如图4所示。

eb18a18c5e77871fa9f867832a859b5.png


游戏结束后,再次按下空格键将重新启动游戏。

(4)如果不需要播放游戏的背景音乐时,可以单击左上角的音乐按钮,背景音乐播放时,控制按钮的运行效果如图5所示。背景音乐停止时,控制按钮的运行效果如图6所示。d98b6fbfab04f5bcebf1bb6292fc0ca.png




部分源码如下,其余完整详见下载。


import random  # 随机数
# 障碍物类
class Obstacle():
    score = 1  # 分数
    move = 5   # 移动距离
    obstacle_y = 150  # 障碍物y坐标
    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()
        # 加载分数图片
        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随机数
        r = random.randint(0, 1)
        if r == 0:  # 如果随机数为0显示导弹障碍物相反显示管道
            self.image = self.missile   # 显示导弹障碍
            self.move = 15              # 移动速度加快
            self.obstacle_y = 100       # 导弹坐标在天上
        else:
            self.image = self.pipe      # 显示管道障碍
        # 根据障碍物位图的宽高来设置矩形
        self.rect.size = self.image.get_size()
        # 获取位图宽高
        self.width, self.height = self.rect.size
        # 障碍物绘制坐标
        self.x = 800
        self.y = self.obstacle_y
        self.rect.center = (self.x, self.y)
    # 障碍物移动
    def obstacle_move(self):
        self.rect.x -= self.move
    # 绘制障碍物
    def draw_obstacle(self):
        SCREEN.blit(self.image, (self.rect.x, self.rect.y))
    # 获取分数
    def getScore(self):
        self.score
        tmp = self.score;
        if tmp == 1:
            self.score_audio.play()  # 播放加分音乐
        self.score = 0;
        return tmp;
    # 显示分数
    def showScore(self, score):
        # 获取得分数字
        self.scoreDigits = [int(x) for x in list(str(score))]
        totalWidth = 0  # 要显示的所有数字的总宽度
        for digit in self.scoreDigits:
            # 获取积分图片的宽度
            totalWidth += self.numbers[digit].get_width()
        # 分数横向位置
        Xoffset = (SCREENWIDTH - (totalWidth+30))
        for digit in self.scoreDigits:
            # 绘制分数
            SCREEN.blit(self.numbers[digit], (Xoffset, SCREENHEIGHT * 0.1))
            # 随着数字增加改变位置
            Xoffset += self.numbers[digit].get_width()


是任天堂出品的著名横版过关游戏,该作最早在红白机上推出,有多款后续作品,其中的主角马里奥、路易、碧奇公主、奇诺比奥等已成为任天堂的招牌人物[1]。在游戏中,玩家控制马里奥从库巴手上设法营救碧奇公主。马里奥的弟弟路易只能在游戏的多人模式中作为第二玩家加入,其角色情节与马里奥完全相同。马里奥是靠吃蘑菇成长,闻名世界的超级巨星。特征是大鼻子、头戴帽子、身穿背带工作服、还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。帽子加背带工作服、大鼻子和胡子等特征,离英雄的形象相差甚远。再加上少许肥胖的身材,稍不留神可能就会把我们的英雄马里奥当成在便利店打工的中年大叔。但是形象上所带来的个性和亲切感,却在玩家的心中根深蒂固。马里奥的诞生之父宫本茂的设计理念就是“像记号一般让人一目了然的外貌,容易表现动作的配色”。当时限于硬件的机能,无法表现精密的画面。为了清楚表现人物的动作,就把马里奥的服装设计成了背带工作服,这样可以很好地表现出手臂的动作。关于脸部的设计,当时的考虑是,就算设计得很仔细,在电视上也无法表现出来。有特点、容易辨认,才是设计的重点。所以就有了大鼻子、留胡子、戴帽子的设计。


相关文章
|
23小时前
|
监控 Python
15.Python 异常处理和程序调试
15.Python 异常处理和程序调试
|
1天前
|
存储 安全 开发者
python小知识-typing注解你的程序
typing 是 Python 的一个标准库,它提供了类型注解的支持,但并不会强制类型检查。类型注解在 Python 3.5 中引入,并在后续版本中得到了增强和扩展。typing 库允许开发者为变量、函数参数和返回值等提供预期的类型信息,这有助于代码的可读性、可维护性和文档化。此外,一些第三方工具(如 MyPy)可以使用这些类型注解进行静态类型检查。【6月更文挑战第1天】
19 1
|
2天前
|
数据采集 JSON 数据库
800个程序实例、5万行代码!清华大学出版【Python王者归来】
Python 的丰富模块(module)以及广泛的应用范围,使 Python 成为当下最重要的计算机语言之一,本书尝试将所有常用模块与应用分门别类组织起来,相信只要读者遵循本书实例,定可以轻松学会 Python 语法与应用,逐步向 Python 高手之路迈进,这也是撰写本书的目的。 本书以约 800 个程序实例讲解了:完整的 Python 语法,Python 的输入与输出,Python 的数据型态,列表(list)、元组(tuple)、字典(dict)、集合(set),函数设计,类别设计,使用系统与外部模块(module),设计自己的模块(module),文件压缩与解压缩,程序除错与异常处理…
|
4天前
|
存储 区块链 Python
怎么把Python脚本打包成可执行程序?
最近根据用户提的需求用python做了一个小工具,但是在给客户使用的时候不能直接发送python文件,毕竟让客户去安装python环境,那就离了大谱了。所以这时候就需要把多个py文件带着运行环境打包成EXE可执行文件。
怎么把Python脚本打包成可执行程序?
|
7天前
|
Shell 开发工具 git
[oeasy]python019_ 如何在github仓库中进入目录_找到程序代码_找到代码
本文档介绍了如何在终端环境下使用Git克隆仓库后,通过`cd`、`pwd`和`ls`命令导航并找到下载的文件。首先,使用`ls`查看当前目录,然后通过`cd`逐层进入目标文件夹,最后到达包含游戏文件game.py的位置。文章还提到了如果`git clone`失败,可以直接进行下一节实验。
14 0
|
7天前
|
Python
Python程序的基本结构及其使用技术
Python程序的基本结构及其使用技术
13 6
|
11天前
|
Linux Python Windows
打包Python程序文件:pyinstaller实现
本文介绍基于Python语言中的pyinstaller模块,将写好的.py格式的Python代码及其所用到的所有第三方库打包,生成.exe格式的可执行文件,从而方便地在其他环境、其他电脑中直接执行这一可执行文件的方法。
|
5天前
|
存储 索引 Python
元组(Tuple)在Python编程中的应用与实例
元组(Tuple)在Python编程中的应用与实例
17 2
|
5天前
|
机器学习/深度学习 数据可视化 数据挖掘
Python编程的深入探索与实用案例
Python编程的深入探索与实用案例
16 3
|
1天前
|
数据采集 运维 API
适合所有编程初学者,豆瓣评分8.6的Python入门手册开放下载!
Python是一种跨平台的计算机程序设计语言,它可以用来完成Web开发、数据科学、网络爬虫、自动化运维、嵌入式应用开发、游戏开发和桌面应用开发。 Python上手很容易,基本有其他语言编程经验的人可以在1周内学会Python最基本的内容(PS:没有基础的人也可以直接学习,速度会慢一点) 今天给小伙伴们分享一份Python语言及其应用的手册,这份手册主要介绍 Python 语言的基础知识及其在各个领域的具体应用,基于最新版本 3.x。