经典超级玛丽游戏python代码pygame

代码介绍

代码功能:

播放与停止背景音乐

随机生成管道与导弹障碍

显示积分

跳跃躲避障碍

碰撞障碍

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

代码下载:

超级玛丽游戏python代码pygame_计算机代码资源下载代码介绍代码功能:播放与停止背景音乐随机生成管道与导弹障碍显示积分跳跃躲避障碍碰撞障碍玛丽冒险的功能结构主要分为三类,分别为音效、主窗体以及随机出现的障碍物游戏窗体的实现在实现游戏窗体时,首先需要定义窗体的宽度与高度,然后通过 pygame 模块中的 init0 方法,实现初始化功能,接下来需要创建循环,在循环中通过 pdate0 函数不断更新窗体,最后需要判断用户是否单击了关闭窗体的按钮,如果单icon-default.png?t=N7T8http://www.edacode.com/index.php?m=home&c=View&a=index&aid=911

游戏窗体的实现

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

在实现玛丽的跳跃功能时,首先需要指定玛丽的固定坐标,也就是默认显示在地图上的固定位置,然后判断是否按下了键盘中的(空格)键,如果按下了就开启玛丽的跳跃开关,让玛丽以 5 个像素的距离向上移动。当玛丽到达窗体顶部的边缘时,再让玛丽以 5 个像素的距离向下移动,回到地面后关闭跳跃的开关

软件:PyCharm

语言:python

工程文件

程序文件

程序编译

运行效果

部分代码展示:

import pygame  # 将pygame库导入到python程序中
from pygame.locals import *  # 导入pygame中的常量
import sys                   # 导入系统模块
SCREENWIDTH = 822  # 窗口宽度
SCREENHEIGHT = 199  # 窗口高度
FPS = 30  # 更新画面的时间
# 定义一个移动地图类
class MyMap():
    def __init__(self, x, y):
        # 加载背景图片
        self.bg = pygame.image.load("image/bg.png").convert_alpha()
        self.x = x
        self.y = y
    def map_rolling(self):
        if self.x < -790:  # 小于-790说明地图已经完全移动完毕
            self.x = 800  # 给地图一个新的坐标点
        else:
            self.x -= 5  # 5个像素向左移动
    # 更新地图
    def map_update(self):
        SCREEN.blit(self.bg, (self.x, self.y))
# 背景音乐按钮
class Music_Button():
    is_open = True   # 背景乐音的标记
    def __init__(self):
        self.open_img = pygame.image.load('image/btn_open.png').convert_alpha()
        self.close_img = pygame.image.load('image/btn_close.png').convert_alpha()
        self.bg_music = pygame.mixer.Sound('audio/bg_music.wav')  # 加载背景音乐
    # 判断鼠标是否在,按钮的范围内
    def is_select(self):
        # 获取鼠标,的坐标
        point_x, point_y = pygame.mouse.get_pos()
        w, h = self.open_img.get_size()             # 获取按钮图片的大小
        # 判断鼠标是否在按钮范围内
        in_x = point_x > 20 and point_x < 20 + w
        in_y = point_y > 20 and point_y < 20 + h
        return in_x and in_y
from itertools import cycle  # 导入迭代工具
# 玛丽类
class Marie():
    def __init__(self):
        # 初始化小玛丽矩形
        self.rect = pygame.Rect(0, 0, 0, 0)
        self.jumpState = False  # 跳跃的状态
        self.jumpHeight = 130  # 跳跃的高度
        self.lowest_y = 140  # 最低坐标
        self.jumpValue = 0  # 跳跃增变量

  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值