当前位置: 首页 > news >正文

一、小白如何用Pygame制作一款跑酷类游戏(成品展示+添加背景图和道路移动效果)

小白如何用Pygame制作一款跑酷类游戏


文章目录

  • 小白如何用Pygame制作一款跑酷类游戏
  • 前言
  • 一、游戏最终效果展示
  • 二、创建项目并加载pygame模块
    • 1.创建项目
    • 2.下载pygame模块
    • 3. 项目结构安排
  • 三、添加背景图和实现道路移动效果
    • 1.引入库
    • 2.窗口设置和资源加载
    • 3.游戏主循环和程序入口
    • 4.实现效果


前言

分享一个通过Pygame制作一款跑酷类游戏,其中包括剧情的设计,人物动作的设计(跳跃、滑行、疾跑),金币的障碍物的碰撞检测等。本篇文章主要介绍游戏的最终效果和开始的帧率、计时器、背景图以及道路滑动的设计。


一、游戏最终效果展示

小白如何用Pygame制作一款跑酷类游戏(成品展示)

提示:开始是剧情介绍,中间部分是游戏部分,最后也是剧情介绍
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、创建项目并加载pygame模块

1.创建项目

在这里插入图片描述

2.下载pygame模块

方法1.通过终端命令行pip install pygame
在这里插入图片描述
方法2.在设置-项目-python解释器-添加软件包-搜索Pygame

3. 项目结构安排

提示:创建新的包来存放游戏所需的音乐以及图片资源

在这里插入图片描述

三、添加背景图和实现道路移动效果

1.引入库

import pygame

2.窗口设置和资源加载

pygame.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()

3.游戏主循环和程序入口

通过下述代码可以实现,道路从右向左不断移动

def init():fps = 60running = Trueindex = 0left = 0right = 1080margin = 3while 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+2160index += 1pygame.display.update()clock.tick(fps)left -= marginright -= margin
if __name__=="__main__":init()

原理分析:如下图所示,黑色框是游戏展示的框宽度为1080,那么会移动的路就是选择一张可以首尾相连的图片,将这个图片分别贴在0和1080的位置,并让这两张图片每帧3像素的向左移动,当左边的图片的做边界为-1080时,那么把这张图片放置在右边部分也就是设置为1080像素,同理原先在右边的图片现在变成了左边并且已经完全进入了游戏边框内。通过这种方式,利用两张图片就可以实现道路的不断向左移动。
在这里插入图片描述

4.实现效果

实现效果

相关文章:

  • 嵌入式面试题:C 语言基础重点总结
  • Flutter 图标和按钮组件
  • 基于RV1126开发板下的WIFI的AP模式配置
  • 【vue3】vue3+express实现图片/pdf等资源文件的下载
  • 埃文科技助力山西公共数据运营新发展
  • 关于 人工智能(AI)发展简史 的详细梳理,按时间阶段划分,涵盖关键里程碑、技术突破、重要人物及挑战
  • QuickAPI 全生命周期管理:从开发到退役的闭环实践​
  • 告别繁琐,拥抱简洁:初识 Pytest 与环境搭建 (Pytest系列之一)
  • vue3 elementPlus中el-tree-select封装和自定义模糊搜索
  • 大数据学习(108)-子查询
  • #苍穹外卖#(day3-4)
  • Verilog的整数除法
  • 【FPGA】——DDS信号发生器设计
  • 单位门户网站被攻击后的安全防护策略
  • P12130 [蓝桥杯 2025 省 B] 移动距离
  • Python Django基于协同过滤算法的招聘信息推荐系统【附源码、文档说明】
  • 深入解析TCP Keep-Alive机制:原理、作用与最佳实践
  • SSM考研助手管理系统
  • 基于MFC 的链接库
  • vue项目打包部署到maven仓库
  • 何以中国|福建武夷山:千年茶道的文旅“破圈”与新生
  • 央行副行长:上海国际金融中心建设是我国参与国际金融竞争的核心载体
  • 最高法典型案例:学生在校受伤,学校并非必然担责
  • 人民日报首推“大地书单”,10本好书上榜!
  • 张又侠董军分别与印尼国防部长会见会谈
  • 41岁知名学者陈昊因病骤然离世,北大再发讣告缅怀