代码介绍
代码功能:
播放与停止背景音乐
随机生成管道与导弹障碍
显示积分
跳跃躲避障碍
碰撞障碍
玛丽冒险的功能结构主要分为三类,分别为音效、主窗体以及随机出现的障碍物
代码下载:
游戏窗体的实现
在实现游戏窗体时,首先需要定义窗体的宽度与高度,然后通过 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 # 跳跃增变量