zoukankan      html  css  js  c++  java
  • cocos2dx

    碰撞检测是游戏的一个重要组成部分,我们这里使用一种最简单的方法,就是获取精灵的矩形碰撞框。当然圆形的碰撞检测也比较简单,其他形状就复杂多了。
    首先是如何获取矩形碰撞框:
    var hBox=this.hero.getBoundingBox();//主角碰撞框
    var eBox=this.enemy.getBoundingBox();//敌人碰撞框
    其次如何判断他们发生了碰撞:
    if(cc.rectIntersectsRect(hBox, eBox)){//判断主角与敌人是否发生碰撞
    //这里写发生碰撞后要执行的代码
    }
    现在我们要让主角发射的子弹在击中敌人的时候能消失,好吧,有上面的基础,直接上代码吧。
    新建一个函数update,在ctor函数中this.schedule(this.update);每帧调用update。

     1 update:function(){
     2     var i;
     3     var hBox=this.hero.getBoundingBox();//主角碰撞框
     4     var eBox=this.enemy.getBoundingBox();//敌人碰撞框
     5     for(i in this._bullets){//遍历所有子弹
     6         var bullet=this._bullets[i];
     7         var bBox=bullet.getBoundingBox();//子弹碰撞框
     8         if(cc.rectIntersectsRect(bBox,eBox)){//判断子弹与敌人是否发生碰撞
     9             this._bullets.splice(i, 1);//从子弹数组中删除子弹
    10             this.removeChild(bullet,true);//移除子弹
    11         }
    12     }
    13 }    

    好了,debug,发现子弹打到敌人会消失了。

  • 相关阅读:
    字符串
    Flume集群搭建
    hbase测试搭建
    hadoop2.0测试环境安装
    kafka集群报错
    kafka集群安装
    hadoop环境配置
    zookeeper安装
    虚拟机时间同步14 Aug 04:09:18 ntpdate[2941]: no server suitable for synchronization found
    python numpy中数组.min()
  • 原文地址:https://www.cnblogs.com/luorende/p/6569379.html
Copyright © 2011-2022 走看看