cocos2dx使用TiledMap模拟3D地图场景----斜45度2D地图的靠墙直线移动

cocos2dx使用TiledMap模拟3D地图场景----斜45度2D地图的靠墙直线移动,第1张

概述 基于cocos2dx引擎的第三人称射击游戏,角色使用3D模型,地图采用2.5D。  定制地图编辑系统抛开不谈,这里最大可能的挖掘现有工具TiledMap的潜力,完成超2.5D地图的实现。  使用2D地图高度模拟3D场景,主要有两个要点需要解决:       1.地图和角色的层级问题,类似3D场景的深度。 在某些障碍物附近,角色可以被障碍物遮挡,也可以遮挡住障碍物。       2.斜45度2D地 基于cocos2dx引擎的第三人称射击游戏,角色使用3D模型,地图采用2.5D。 定制地图编辑系统抛开不谈,这里最大可能的挖掘现有工具TiledMap的潜力,完成超2.5D地图的实现。
使用2D地图高度模拟3D场景,主要有两个要点需要解决: 1.地图和角色的层级问题,类似3D场景的深度。 在某些障碍物附近,角色可以被障碍物遮挡,也可以遮挡住障碍物。 2.斜45度2D地图边缘的平滑移动。 从图中可以看出组成地图的格子造成了地图的锯齿状边缘,从而导致角色在靠近墙体的容易卡住或者阶梯式移动。 3.(可选)地图的场景道具编辑和事件编辑也在下图中。

问题1方案: 2D游戏层级问题必须由分层并且是分图层来解决。地图本身分为两层,底板(设计图)和上层障碍物地图,这两张地图一般大。上层地图用于角色的遮挡和被遮挡。 角色也需要两个层级。 一个层级可以被上层地图遮挡,另一个层级可以遮挡上层地图。 最终这四层如下: 1.Map Bottom (距离屏幕最远)下层地图 2.Role Bottom 被遮挡的角色层 3.Map top 上层地图 4.Role top (距离屏幕最近) 遮挡一切地图
角色根绝所在的位置(这里有TiledMap砖块配置获取),可以及时切换所在的层级(2或者4),按照这四层的绘制顺序完成2.5D地图。 由于3D模型使用了单独的摄像机,所以这四层在场景中转变为四个摄像机。分别为对应为USER1,USER2,USER3,USER4。
问题2方案: 对于游戏场景移动的体验非常重要,特别是靠近边缘移动,在我个人的理解中有两点很重要,一是不要停,二是平滑。 1.不要停 在锯齿状的地图中,如果没有任何优化,必须要随时使用遥感调整移动方向。 这里的优化参考最简单的直线墙体移动。在平行于x轴遇到障碍物的情况下,则按照遥感方向选择合适的Y轴方向模糊移动。 2.锯齿边缘的平滑移动。 在TiledMap引入了直线的概念,从图中看到部分墙体划了直线。使用RTREE算法高效查找人物所在的直线,在边缘检测到可直线移动的时候,沿着直线平滑移动,不会走锯齿状的路线出来。

总结

以上是内存溢出为你收集整理的cocos2dx使用TiledMap模拟3D地图场景----斜45度2D地图的靠墙直线移动全部内容,希望文章能够帮你解决cocos2dx使用TiledMap模拟3D地图场景----斜45度2D地图的靠墙直线移动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1082825.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存