python 实现超级玛丽游戏

1、需求分析

具备功能

  1. 播放与停止背景音乐

  2. 随机生成管道与导弹障碍

  3. 显示积分

  4. 跳跃躲避障碍

  5. 碰撞障碍

2、游戏功能结构

玛丽冒险的功能结构主要分为三类,分别为音效、主窗体以及随机出现的障碍物。如下图

image-20231028213612463

3、游戏业务流程

根据该游戏的需求分析以及功能结构

image-20231028214036292

4、游戏预览

image-20231028215603717

5、开发必备

游戏开发运行环境

  1. python3.7 以上

  2. 开发工具 PyCharm

  3. Python 内置模块:itertools、random

  4. 第三方模块:pygame

文件夹组织结构

玛丽冒险游戏的文件夹组织结构主要分为: audio(保存音效文件)和 image (保存图片)

image-20231028215838389

6、玛丽冒险游戏实现
6.1、游戏窗体的实现

在实现游戏窗体时,首先需要定义窗体的宽度与高度,然后通过 ygame 模块中的 init0 方法,实现初始化功能,接下来需要创建循环,在循环中通过 pdate0 函数不断更新窗体,最后需要判断用户是否单击了关闭窗体的按钮,如果单击了“关闭”按钮,将关闭窗体,否则继续循环显示窗体

image-20231028220745048

通过 pygame 模块实现玛丽主窗体具体步骤如下

  1. 创建文件夹,一个保存音频,一个图片,创建 marie.py 文件

  2. 导入 pygame 库与 pygame 中的常用库,然后定义窗体宽度与高度

import pygame   from pygame.locals import *   import sys      # 设置游戏窗口的宽度和高度   SCREENWIDTH = 822   SCREENHEIGHT = 199   # 设置游戏帧率   FPS = 60   

创建 mainGame0 方法,在该方法中首先进行 pygame 的初始化工作,然后创建时间对象用于更新窗体中的画面,再创建窗体实例并设置窗体的标题文字,最后通过循环实现窗体的显示与刷新。

def mainGame():       score = 0       over = False       global SCREEN, FPSCLOCK       # 初始化pygame库       pygame.init()       # 初始化时钟对象       FPSCLOCK = pygame.time.Clock()       # 创建窗口对象       SCREEN = pygame.display.set_mode((SCREENWIDTH, SCREENHEIGHT))       # 设置窗口标题       pygame.display.set_caption("玛丽冒险")          while True:           # 处理游戏事件           for event in pygame.event.get():               if event.type == QUIT:                   pygame.quit()                   sys.exit()              # 更新窗口内容           pygame.display.update()              # 控制帧率           FPSCLOCK.tick(FPS)         if __name__ == "__main__":       mainGame()   
6.2、地图加载

image-20231028221849551

创建一个名称为 MyMap 的滚动地图类,然后在该类的初始化方法中加载背景图片和定义 X 与 Y 的坐标

class MyMap():       def __init__(self, x, y):           self.bg = pygame.image.load("image/bg.png").convert_alpha()           self.x = x           self.y = y   

在 MyMap 类中创建 map _rolling0 方法,在该方法中根据地图背景图片的 X 坐标判断是否移出窗体,如果移出就给图片设置一个新的坐标点,否则按照每次 5 个像素的跨度向左移动

    `def map_
  • 18
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值