位置: 编程技术 - 正文
推荐整理分享cocos2d-x游戏实例(4)-地图碰撞(cocos2dx小游戏),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:cocos2dx游戏案例,cocos2d游戏源码,cocos2dx小游戏,cocos做游戏,cocos2dx游戏开发教程,cocos2dx游戏案例,cocos2dx游戏案例,cocos2dx游戏开发教程,内容如对您有帮助,希望把文章链接给更多的朋友!
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址 我觉得这个更适合度角的地图,因为如果使用后一种办法,把所有的图素宽放在一层里的话,会有遮挡这个问题的,当然不是说第二种不能只不过我们把地图的碰撞图素放在一层里我们会把相应的表现图素放在新的一层里,所以还是要分层。
首先看第一种情况的地图,如下图
就是新建一层Tree层,把所有的树(这里不能碰撞的图素),grass层铺满草,这里人可以在草中移动,检测碰撞的代码如下:
首先通过convertto2d函数获得主角在地图上的索引,这里为了方便,我把索引也做成CCPoint的类型了,但是事实上,它并不是一个CCPoint,然后获得Tree层,然后根据索引及tileAt函数获得在该位置的图素,如果他不为空,则证明这个位置是不可碰撞的,那么我们就回滚刚才的移动位置操作,并停止该位置的移动即可。这种方法解决起来相对简单。
2.地图GID及属性法
这种方法应该是更为“正统”的,首先在地图上建一层,如下
只是建一层,然后我们在图素上新建属性,我们建一个叫“conflict”属性,并为他设定不同的即可。
我们把不可碰得设为1,把可碰的设为0。代码如下:
我们首先或取GID,其实我们可以根据gid直接判断哪些可碰哪些不能通过。但是为了演示如何获得属性,我们还有之后的代码,通过gid获得属性,属性是一组键对,然后获得conflict,这样我们就可以判断了
如有错误之处,希望大家多多指正
下一篇继续游戏实例
cocos2d-x中的box2d(4)-DumpShell 小满(billman)个人原创,欢迎转载,转载请注明地址,小满(billman)的专栏地址
cocos2d-x中的box2d(5)-Gear 小满(billman)个人原创,欢迎转载,转载请注明地址,小满(billman)的专栏地址
cocos2d-x初探学习笔记()--CCMutableArray 小满(billman)个人原创,欢迎转载,转载请注明地址,小满(billman)的专栏地址
标签: cocos2dx小游戏
本文链接地址:https://www.jiuchutong.com/biancheng/372687.html 转载请保留说明!友情链接: 武汉网站建设