news 2026/7/7 17:27:51

《C++手搓像素RPG引擎》02:初始小镇及博士研究所

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《C++手搓像素RPG引擎》02:初始小镇及博士研究所

⚠️阅读前必看

  • 本文所有代码、架构设计均为个人原创实现,AI辅助部分均已人工审查重构
  • 演示素材使用CC0开源资源/原创占位图,未包含任何任天堂官方资源
  • 文中“宝可梦风格”仅指代像素RPG品类,不涉及具体IP还原,与任天堂官方无任何关联
  • 因版权合规要求,本文以文字+代码为主,避免展示可能引发争议的图片素材

初始城镇

上篇已经讲过地图编辑器(Tiled)的使用方式,这个就不在赘述了,使用工具创建一个地图文件,并把在网上找到的贴图纹理导入进来,就可以把他拉到地图上了,然后按照上篇建object层的方式建立一个障碍物层,框选是障碍物的部分,并设置属性,之后就可以保存xml了。

打开保存的xml文件,会发现多了下图的csv字串

这个就是上篇说的纹理id,代码就是通过这个id找到纹理,并显示的。

随后就可以在代码中显示地图,在角色移动后判断坐标是否是障碍物(AABB算法检测粗陋,不是很准),代码修改如下

现在你就能重新编译并启动你的项目啦,能发现主角在你画的地图中“畅游”啦,并在碰到障碍物的时候停下。

博士研究所

接下来就要进入博士研究所获取属于自己的宝可梦啦!!!

在初始城镇地图上添加一个新的object层(比如叫points),在研究所门口位置添加一个点位,并创建属性(这一步可以根据自己的想法随意更改),以下是我的做法

代表这是一个入口点,nextMap是指向切换显示的地图,以及切换后人物的初始坐标。

绘制博士研究所地图,并按添加object层的方法添加障碍物层,npc层(如博士,研究员),item层(如精灵球),通过代码加载纹理,绑定精灵的方法把博士,精灵球这些显示在界面上(这里也可以上述设置属性的方法来实现;研究员比较复杂,他是可以按照规定路线走动的,所以这里先创建一个静态npc占位,动态的以后在考虑)。

上述有入口点,这里当然要有一个出口点啦,一样设置

随后在加载地图的类中,可以保存这些属性,在人物移动后障碍物检测的api中可以判断当前点位是否和属性点位相同,如果相同就切换地图,代码如下

⚠️文中涉及到的坐标,可以在代码中cout打印当前人物坐标来确定,也可以通过在地图文件中添加点位后,查看文件来确定其坐标(这种方式有可能有偏移)

⚠️为了游戏有更好的体验感,这里切换地图时引入了两秒的黑屏(关于黑屏的制作方法,可以用定时器实现,这里不再赘述)

现在初始城镇和博士研究所的来回切换就可以丝滑进行了,关于博士研究所内发生的事(跟博士对话->选择精灵球->和研究员对话)的开发,以及获取宝可梦后再背包中查看(背包-精灵系统的开发)将在下一篇详细说明。

未完待续。。。

📌以上内容基于开发过程中的真实问题与解决方案整理。受限于个人技术水平,难免存在疏漏或更优解法,欢迎在评论区指正交流!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 17:25:56

数据结构--图

1.图的基本概念图这东西,说白了就是“一堆东西”和“这些东西之间的连接”。我用最生活化的例子给你拆解:图长什么样? 你可以在纸上随手画几个圈(代表东西),再用线把圈连起来(代表关系&#xff…

作者头像 李华
网站建设 2026/7/7 17:25:21

数据库视图学习笔记

视图定义视图是虚拟表,不存储真实数据,仅保存一段查询SQL;访问视图时会动态读取底层数据表的数据,依赖真实表存在。视图 vs 数据表:增/改/删操作对比1. 创建数据表CREATE TABLE student(id INT, name VARCHAR(20));物理…

作者头像 李华
网站建设 2026/7/7 17:24:54

Maya与AI渲染集成:Seedance 2.0多模态生成模型实战指南

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 如果你还在用传统方式在 Maya 中手动调整每一帧动画、反复测试渲染参数,那么这篇文章可能会改变你的工作流程。最近 AI 视…

作者头像 李华
网站建设 2026/7/7 17:24:21

STM32F746与L9958实现高效电机FOC控制方案

1. 项目背景与核心价值在工业自动化和机器人控制领域,电机驱动性能直接决定了整个系统的响应速度、精度和稳定性。传统方案往往面临PWM分辨率不足、电流采样延迟、控制算法效率低下等痛点。而基于STMicroelectronics的L9958驱动芯片与STM32F746ZG微控制器的组合&…

作者头像 李华
网站建设 2026/7/7 17:21:43

2026年主流通勤听书对比,一篇说清楚

每天通勤一小时,干点啥最划算?答案越来越多人选了“听书”。地铁上、洗碗时、睡觉前,那点零散时间凑起来,足够听完一本书的核心精华。可惜市面上太多听书App要么会员墙挡路,要么章章节节锁住,听个半小时弹出…

作者头像 李华
网站建设 2026/7/7 17:20:13

智能桌面工作流革命:如何用Sticky便签重塑Linux生产力生态

智能桌面工作流革命:如何用Sticky便签重塑Linux生产力生态 【免费下载链接】sticky A sticky notes app for the linux desktop 项目地址: https://gitcode.com/gh_mirrors/stic/sticky 在Linux桌面环境中,信息碎片化管理一直是提升工作效率的关键…

作者头像 李华