二、小白如何用Pygame制作一款跑酷类游戏(主角和背景音乐的添加)
文章目录
- 二、小白如何用Pygame制作一款跑酷类游戏(主角和背景音乐的添加)
- 前言
- 一、创建新的目录并存放主角人物素材和背景音乐
- 二、代码部分
- 1.创建一个主角精灵的python文件命名为Myself.py
- 2.runner_main方法添加主角精灵和背景音乐
- 3.runner_main方法的所有代码
- 三、最终的效果
前言
分享一个通过Pygame制作一款跑酷类游戏,其中包括剧情的设计,人物动作的设计(跳跃、滑行、疾跑),金币的障碍物的碰撞检测等。
本篇文章主要介绍游戏的主角和背景音乐的添加
一、创建新的目录并存放主角人物素材和背景音乐
素材资源放在了
主角走路素材
https://download.csdn.net/download/qq_43646281/90626905
可免费下载,但是图片来自于网络资源不可商用。
背景音乐可以自行去爱给网选择自己喜欢的bgm
一个可以免费下载音乐和音效的网站: 爱给网
下载好之后存放在
二、代码部分
1.创建一个主角精灵的python文件命名为Myself.py
代码如下:
import pygameclass Myself(pygame.sprite.Sprite):def __init__(self):super(Myself, self).__init__()self.image = pygame.image.load('material/image/myself/walk/1.PNG').convert_alpha()self.walk = [pygame.image.load('material/image/myself/walk/{:d}.PNG'.format(i)).convert_alpha() for i inrange(1, 8)]self.rect = self.walk[0].get_rect()self.rect.top=400self.rect.left=200def update(self, *args):if args[0] % 6 == 0:i = int(args[0] / 6)self.image=self.walk[i % len(self.walk)
2.runner_main方法添加主角精灵和背景音乐
from Myself import Myself
import os
初始化
myself = Myself()
pygame.mixer.music.load(os.path.join('material/music', 'bgm1.mp3'))
pygame.mixer.music.play(-1)
主循环中绘制主角
screen.blit(myself.image,myself.rect)
myself.update(index)
3.runner_main方法的所有代码
import pygame
from Myself import Myself
import ospygame.init()
clock = pygame.time.Clock()
screen = pygame.display.set_mode((1080, 600))
pygame.display.set_caption('跑酷游戏')
#背景图
bg_image_path1 = 'material/image/background4.jpg'
bg_img_obj1 = pygame.image.load(bg_image_path1).convert_alpha()
#道路图
road_image_path= 'material/image/road1.png'
road_img_obj=pygame.image.load(road_image_path).convert_alpha()
def init():fps = 60running = Trueindex = 0left = 0right = 1080margin = 3myself = Myself()pygame.mixer.music.load(os.path.join('material/music', 'bgm1.mp3'))pygame.mixer.music.play(-1)while running:for event in pygame.event.get():if event.type == pygame.QUIT:running = Falsescreen.blit(bg_img_obj1, (0, 0))screen.blit(road_img_obj, (left, 465))screen.blit(road_img_obj, (right, 465))if left<=-1080:left=left+2160if right<=-1080:right=right+2160screen.blit(myself.image,myself.rect)myself.update(index)index += 1pygame.display.update()clock.tick(fps)left -= marginright -= margin
if __name__=="__main__":init()
三、最终的效果
此处有bgm响起