三、小白如何用Pygame制作一款跑酷类游戏(按键图片和距离的计算)
三、小白如何用Pygame制作一款跑酷类游戏(实现移动距离的计算,以及按键指引的添加)
文章目录
- 三、小白如何用Pygame制作一款跑酷类游戏(实现移动距离的计算,以及按键指引的添加)
- 前言
- 一、创建字体文件夹
- 1.可以从网上自行下载中文字体存入当前文件夹下
- 2.将计算距离以及按键的图片素材放入对应的目录内
- 二、代码部分
- 1.初始化图片和文字
- 2.屏幕中贴入图片,并将距离按照每6次时钟增加十米更新
- 3.main方法的完整代码
- 三、效果展示
前言
本篇主要实现移动距离的计算,以及按键指引的添加
一、创建字体文件夹
1.可以从网上自行下载中文字体存入当前文件夹下
默认字体可能不支持中文,因此需要确保系统中有支持中文的字体,并尝试通过字体名称指定
2.将计算距离以及按键的图片素材放入对应的目录内
二、代码部分
1.初始化图片和文字
代码如下:
#距离图
km_image_path= 'material/image/km.png'
km_img_obj=pygame.image.load(km_image_path).convert_alpha()
#按键图
keyUp_image_path= 'material/image/keyboardUpUp.png'
keyUp_img_obj=pygame.image.load(keyUp_image_path).convert_alpha()
keyLeft_image_path= 'material/image/keyboardLEFT.png'
keyLeft_img_obj=pygame.image.load(keyLeft_image_path).convert_alpha()
keyDown_image_path= 'material/image/keyboardDown.png'
keyDown_img_obj=pygame.image.load(keyDown_image_path).convert_alpha()
font_path = 'material/ziti/AlimamaFangYuanTiVF-Thin-2.ttf' # 例如 'SimSun.ttf'
chinese_font = pygame.font.Font(font_path, 30)
text_surface = chinese_font.render('跳跃', True, (0, 0, 255))
text1_surface = chinese_font.render('疾跑', True, (0, 0, 255))
text2_surface = chinese_font.render('滑行', True, (0, 0, 255))
2.屏幕中贴入图片,并将距离按照每6次时钟增加十米更新
代码如下:
#键位介绍
screen.blit(keyUp_img_obj, (900, 5))
screen.blit(text_surface, (980, 23))
screen.blit(keyLeft_img_obj, (900, 70))
screen.blit(text1_surface, (980, 88))
screen.blit(keyDown_img_obj, (900, 135))
screen.blit(text2_surface, (980, 148))
#路程
screen.blit(km_img_obj, (10, 70))
km_font = pygame.font.SysFont('arial', 30)
km_num_surface = km_font.render(km, True, (0, 0, 255))
screen.blit(km_num_surface, (80, 88))
if index%6==0:km = str(int(km) + margin)
3.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()
#距离图
km_image_path= 'material/image/km.png'
km_img_obj=pygame.image.load(km_image_path).convert_alpha()
#按键图
keyUp_image_path= 'material/image/keyboardUpUp.png'
keyUp_img_obj=pygame.image.load(keyUp_image_path).convert_alpha()
keyLeft_image_path= 'material/image/keyboardLEFT.png'
keyLeft_img_obj=pygame.image.load(keyLeft_image_path).convert_alpha()
keyDown_image_path= 'material/image/keyboardDown.png'
keyDown_img_obj=pygame.image.load(keyDown_image_path).convert_alpha()
font_path = 'material/ziti/AlimamaFangYuanTiVF-Thin-2.ttf' # 例如 'SimSun.ttf'
chinese_font = pygame.font.Font(font_path, 30)
text_surface = chinese_font.render('跳跃', True, (0, 0, 255))
text1_surface = chinese_font.render('疾跑', True, (0, 0, 255))
text2_surface = chinese_font.render('滑行', True, (0, 0, 255))
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)km = '0'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))#键位介绍screen.blit(keyUp_img_obj, (900, 5))screen.blit(text_surface, (980, 23))screen.blit(keyLeft_img_obj, (900, 70))screen.blit(text1_surface, (980, 88))screen.blit(keyDown_img_obj, (900, 135))screen.blit(text2_surface, (980, 148))if left<=-1080:left=left+2160if right<=-1080:right=right+2160screen.blit(myself.image,myself.rect)myself.update(index)screen.blit(km_img_obj, (10, 70))km_font = pygame.font.SysFont('arial', 30)km_num_surface = km_font.render(km, True, (0, 0, 255))screen.blit(km_num_surface, (80, 88))if index%6==0:km = str(int(km) + margin)index += 1pygame.display.update()clock.tick(fps)left -= marginright -= margin
if __name__=="__main__":init()
三、效果展示