
⚠️阅读前必看本文所有代码、架构设计均为个人原创实现AI辅助部分均已人工审查重构演示素材使用CC0开源资源/原创占位图未包含任何任天堂官方资源文中“宝可梦风格”仅指代像素RPG品类不涉及具体IP还原与任天堂官方无任何关联因版权合规要求本文以文字代码为主避免展示可能引发争议的图片素材初始城镇上篇已经讲过地图编辑器Tiled的使用方式这个就不在赘述了使用工具创建一个地图文件并把在网上找到的贴图纹理导入进来就可以把他拉到地图上了然后按照上篇建object层的方式建立一个障碍物层框选是障碍物的部分并设置属性之后就可以保存xml了。打开保存的xml文件会发现多了下图的csv字串这个就是上篇说的纹理id代码就是通过这个id找到纹理并显示的。随后就可以在代码中显示地图在角色移动后判断坐标是否是障碍物AABB算法检测粗陋不是很准代码修改如下现在你就能重新编译并启动你的项目啦能发现主角在你画的地图中“畅游”啦并在碰到障碍物的时候停下。博士研究所接下来就要进入博士研究所获取属于自己的宝可梦啦在初始城镇地图上添加一个新的object层比如叫points在研究所门口位置添加一个点位并创建属性这一步可以根据自己的想法随意更改以下是我的做法代表这是一个入口点nextMap是指向切换显示的地图以及切换后人物的初始坐标。绘制博士研究所地图并按添加object层的方法添加障碍物层npc层如博士研究员item层如精灵球通过代码加载纹理绑定精灵的方法把博士精灵球这些显示在界面上这里也可以上述设置属性的方法来实现研究员比较复杂他是可以按照规定路线走动的所以这里先创建一个静态npc占位动态的以后在考虑。上述有入口点这里当然要有一个出口点啦一样设置随后在加载地图的类中可以保存这些属性在人物移动后障碍物检测的api中可以判断当前点位是否和属性点位相同如果相同就切换地图代码如下⚠️文中涉及到的坐标可以在代码中cout打印当前人物坐标来确定也可以通过在地图文件中添加点位后查看文件来确定其坐标这种方式有可能有偏移⚠️为了游戏有更好的体验感这里切换地图时引入了两秒的黑屏关于黑屏的制作方法可以用定时器实现这里不再赘述现在初始城镇和博士研究所的来回切换就可以丝滑进行了关于博士研究所内发生的事跟博士对话-选择精灵球-和研究员对话的开发以及获取宝可梦后再背包中查看背包-精灵系统的开发将在下一篇详细说明。未完待续。。。以上内容基于开发过程中的真实问题与解决方案整理。受限于个人技术水平难免存在疏漏或更优解法欢迎在评论区指正交流