cocos2d-x游戏实例(4)-地图碰撞
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man
这篇继续上一篇的内容,继续地图碰撞,上一篇我们得到了我们所处位置的地图索引,这样我们就可以知道我们要控制的角色的位置对应的地图索引值了,那么如何知道我们这块地图是可以去的还是碰撞呢,这里我介绍两种办法
1.分层法
我觉得这个更适合45度角的地图,因为如果使用后一种办法,把所有的图素宽放在一层里的话,会有遮挡这个问题的,当然不是说第二种不能只不过我们把地图的碰撞图素放在一层里我们会把相应的表现图素放在新的一层里,所以还是要分层。
首先看第一种情况的地图,如下图
就是新建一层Tree层,把所有的树(这里不能碰撞的图素),grass层铺满草,这里人可以在草中移动,检测碰撞的代码如下:
首先通过convertto2d函数获得主角在地图上的索引值,这里为了方便,我把索引值也做成CCPoint的类型了,但是事实上,它并不是一个CCPoint,然后获得Tree层,然后根据索引及tileAt函数获得在该位置的图素,如果他不为空,则证明这个位置是不可碰撞的,那么我们就回滚刚才的移动位置操作,并停止该位置的移动即可。这种方法解决起来相对简单。
2.地图GID及属性法
这种方法应该是更为“正统”的,首先在地图上建一层,如下
只是建一层,然后我们在图素上新建属性,我们建一个叫“conflict”属性,并为他设定不同的值即可。
我们把不可碰得设为1,把可碰的设为0。代码如下:
我们首先或取GID,其实我们可以根据gid直接判断哪些可碰哪些不能通过。但是为了演示如何获得属性,我们还有之后的代码,通过gid获得属性,属性是一组键值对,然后获得conflict值,这样我们就可以判断了
如有错误之处,希望大家多多指正
下一篇继续游戏实例
cocos2d-x游戏实例(4)-地图碰撞相关推荐
- cocos2d-x游戏实例(10)-塔防游戏(修改地图图素,地图整体缩放)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 塔防游戏在目前的智能机游戏中占据很重要的部分, ...
- cocos2d-x游戏实例(3)-获得地图索引
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 我们不仅要显示地图,还要对地图进行一些逻辑操作 ...
- 添加类iOS cocos2d 2游戏开发实战(第3版)
这两天一直在学习添加类之类的问题,现在正好有机会和大家讨论一下. 第1章 简介 1 1.1 第3版中的新增内容 2 1.2 选择ios版cocos2d的来由 3 1.2.1 收费 3 1.2.2 开源 ...
- 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比(一家之言)
初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比 发布于:2013-07-18 11:00阅读数:1984 ...
- iOS cocos2d 2游戏开发实战(第3版)
<iOS cocos2d 2游戏开发实战(第3版)> 基本信息 原书名:Learn cocos2d 2: Game Development for iOS 作者: (美)Steffen I ...
- 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比
前言 iOS7 beta发布后,大部分开发者和用户的注意力都集中在了iOS 7的全新UI交互设计界面上.一直负责硬件工业设计的Jony Ive首次全面负责苹果的软件和硬件设计工作,自然要把他自己的设计 ...
- cocos2d-x游戏实例(5)-A星算法(1)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 继续上一篇地图上的处理,不过和本篇相比,我们之 ...
- cocos2d-x游戏实例(28)-简易动作游戏(6)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 本篇继续简易动作游戏实例,本篇加入简单血量条u ...
- cocos2d-x游戏实例(26)-简易动作游戏(4)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 继续上一篇的简易动作游戏,本篇加入主角的跳跃, ...
最新文章
- C++下简单的socket编程
- 爱创课堂每日一题101天-哪些操作会造成内存泄漏?
- 【阿里云课程】生成模型之GAN优化目标设计与改进
- mysql mtq_MySQL基础知识 - osc_r3mtqivi的个人空间 - OSCHINA - 中文开源技术交流社区
- JZOJ 5410. 【NOIP2017提高A组集训10.22】小型耀斑
- Centos7安装Nginx1.14.0
- OpenCV学习笔记之 ( 三 ) MFC显示Mat图片
- 160 - 1 Acid burn
- 【Vue2.0】—常用的内置指令(九)
- Mongodb For Mac OSX 登录验证
- pycharm 怎么快速生成文件夹结构_Pycharm配置Qt工具(ubuntu18.04)
- #ifdef 支持Mac #ifndef 支持Windows #if defined (Q_OS_WIN) 应该可以再两个系统通用
- GalleryView禁止选中项目向中间滑动
- 系统内核溢出漏洞提权分析和防范
- Oracle官网下载历史版本软件
- 大学一年级计算机应用课程,计算机应用*的课程教学计划
- dcdc模块降额设计_爱默生网络能源PCB设计规范
- 2022年危险化学品经营单位安全管理人员考题及答案
- 极客时间es学习笔记
- 非关系型数据库 之 图数据库Neo4j的使用(Python3)