• 欢迎来到GeekFaner

    每周更新一篇教程,轻松学习cocos2d-x

    联系我们
  • 又是一个美好的一天

    每天的太阳都是新的,今天要比昨天好

    联系我们
  • 出发!

    开始今天的课程学习,让我们的明天更美好

    联系我们

课程概述

“Cocos2d-X的碰撞事件-跳跃的小人”课程概述

游戏中存在大量的碰撞,比如植物的子弹打到了僵尸,比如跳跃的小人碰到了墙壁。这些看上去非常复杂的事件,其实在Cocos2d-X中实现起来非常简单

教学视频

课程笔记

Demo解读

碰撞事件

cocos2dx3.0之后,碰撞事件也有所改变。首先读取一个sprite的getBoundingBox,会返回一个矩阵,然后调用该矩阵的intersectsRect,传入参数为另外一个sprite的getBoundingBox,判断两个矩阵是否有相交,如果有相交,则发生了碰撞,返回为true。

在这个demo中使用了另外一个机制,如果小人在跳跃过程中,点击屏幕,不会再次触发触屏事件,使用的机制是,第一次点击屏幕,小人执行跳跃动作的同时,执行一个回调函数,该回调函数将触屏监听器EventListenerTouchOneByOne disable,然后在执行完跳跃动作之后,执行另外一个回调函数,将触屏监听器EventListenerTouchOneByOne 再次enable。碰撞了之后调用unscheduleUpdate让update的动作不再继续。

在这个demo中还使用到了第三个机制,随机的出现box,其实一共只有2个阻碍物,然后这两个阻碍物移动到最左端的时候,会使用随机数判断一下是否需要在最右端重新显示,如果判断成功,且另外一个阻碍物已经距离最右端一段距离(如果两个阻碍物距离太近,小人肯定会撞上),则这个阻碍物会出现在屏幕最右端

另外,在这个demo中,需要先将默认的背景颜色从黑色设置为白色。方法是先实例化一个LayerColor,实例化为白色,然后将实例化的LayerColor加入layer。然后将menuitemfont的颜色通过setColor设置为黑色

联系我们

笔者制作网站的目的,主要是借用自己之前的知识背景(Android App开发和图形学知识),将自己学习笔记拿出来,和大家一起进行交流,毕竟每个人的知识体系不同,有交流才会有提高,所以欢迎大家通过各种方式和我联系。
网址:www.geekfaner.com
youku教学视频:http://i.youku.com/geekfaner
“百度传课”教学视频(高清版_推荐):http://www.chuanke.com/s2588605.html

wangshuo@geekfaner.com