小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man

本篇进行垂直方向上的碰撞检测,测试的方法就是把主角的初始高度设高,让主角落至地面:

来看判断垂直方向的碰撞的函数playermapvcollision:

前面几句是获得主角的位置和宽高以及获得地图,然后通过如下几句获得主角在地图上的索引横纵坐标并进一步获得主角所在图素块的tilegid :

indexx = (playerpoint.x) / map->getTileSize().width;

indexy = map->getMapSize().height - (playerpoint.y) / map->getTileSize().height;

CCPoint playerindex = ccp(indexx,indexy);

int tilegid = layer->tileGIDAt(playerindex);

当获得纵坐标的时候需要注意的是纵坐标除以图素高并不能直接获得在地图中的图素纵坐标索引,因为地图的索引是从左上角开始的,而坐标是从左下角开始,所以需要转换一下,用整个地图的纵坐标格数map->getMapSize().height减去我们纵坐标除以图素高的值便是主角所在位置的纵坐标索引值。接下来获得之前定义的“collion”值,如果“collion”值为1,那么停掉主角在纵坐标运动的标志vmove,否则vmove会被设置为1,也就是让主角一直延纵坐标移动。

然后在update中调用playermapvcollision,然后在处理纵坐标的位移,这里只是简单的让主角作匀速直线运动

如有错误之处,希望大家多多指正

下一篇继续简易动作游戏实例

cocos2d-x游戏实例(25)-简易动作游戏(3)相关推荐

  1. cocos2d-x游戏实例(28)-简易动作游戏(6)

    小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 本篇继续简易动作游戏实例,本篇加入简单血量条u ...

  2. cocos2d-x游戏实例(27)-简易动作游戏(5)

    小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 继续简易动作游戏实例,本篇加入小怪并且加入小怪 ...

  3. cocos2d-x游戏实例(26)-简易动作游戏(4)

    小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 继续上一篇的简易动作游戏,本篇加入主角的跳跃, ...

  4. cocos2d-x游戏实例(24)-简易动作游戏(2)

    小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 继续上一篇动作游戏的实例,加入左右边界的碰撞, ...

  5. cocos2d-x游戏实例(23)-简易动作游戏(1)

    小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 从本篇开始,开始一个简单的动作类游戏的实例,本 ...

  6. Cocos2D教程:使用SpriteBuilder和Cocos2D 3.x开发横版动作游戏——Part 2

    本文是"使用Cocos2D 3.x开发横版动作游戏"系列教程的第二篇,同时也是最后一篇.是对How To Make A Side-Scrolling Beat Em Up Game ...

  7. 【ThinkGame】我对动作游戏的思考,以及一个游戏程序能为动作游戏做什么?

    终于,我决定进入游戏行业,并踏进去了一只脚. 2019年的游戏<只狼>,让我看到了东方文化在动作游戏中的完美诠释,中国本应可以在以东方文化为卖点的电子游戏行业中大放光彩,却因为不可抗的力量 ...

  8. php可以做游戏脚本,25个PHP游戏编程脚本代码

    25个PHP游戏编程脚本代码 本文介绍的脚本易于理解.使用简单并可以快速掌握. 简单的掷骰器 许多游戏和游戏系统都需要骰子.让我们先从简单的部分入手:掷一个六面骰子.实际上,滚动一个六面骰子就是从 1 ...

  9. python迷宫小游戏代码_pygame简易迷宫游戏_mask应用示例程序

    用pygame制作的迷宫小游戏.像这类碰撞检测用mask最好.下面是部分代码预览: """ 简易迷宫游戏.本程序演示一个非常简单的迷宫游戏原理. 采用mask进行碰撞检测 ...

最新文章

  1. 从零开始学习springboot之springboot搭建
  2. ZooKeeper场景实践:(6)集群监控和Master选举
  3. webSQL 实现即时通讯
  4. 关于解决mybase7继续使用的方法
  5. BZOJ 4736 温暖会指引我们前行 LCT+最优生成树+并查集
  6. 三个故事看懂了再结婚(转)
  7. MariaDB Audit  Statistics
  8. idea配置java和maven_Maven配置,使用IntelliJ IDEA和Maven创建Java Web项目
  9. SWAT模型学习小技巧(前言)
  10. python 通达信选股_python通达信指标
  11. 教你3招解决PDF文字无法复制的所有问题!!!
  12. C/C++/Java 基本数据类型总结
  13. Windows XP SP3需要安装KB888111补丁解决方法
  14. 神州数码交换机enable密码清除
  15. unity资源商店出现“抱歉,此链接不再有效”怎么办
  16. 华为路由器设置静态IP
  17. 【带机器人】在线客服系统多商户客服源码 im即时通讯聊天 带注册 自适应网页 自动回复客服
  18. 自监督学习经典之作:DINO
  19. Beaglebone Black– 智能家居控制系统 LAS - 网页服务器 Node.js 、Web Service、页面 和 TCP 请求转 UDP 发送...
  20. 手绘与码绘————用代码表现出花瓣飞舞的效果

热门文章

  1. hadoop的安装-配置文件修改
  2. Web常见攻击手段总结
  3. SpringBoot_web开发-thymeleaf语法
  4. MySQL服务器参数介绍
  5. 模拟实现单链表(三级)
  6. php的常量和变量的区别,变量和常量的区别_在php当中常量和变量的区别
  7. python try语句各种格式输出_python如何写try语句
  8. 关于导入geoserver 源码到Eclipse编译运行
  9. MySQL从库的列类型不一致导致的复制异常问题
  10. Eclipse 设置SVN忽略文件