飞机的自定义事件的逻辑

onExit的时候注意清除action  schedule 和 listener

添加动画
plist + png
 var frame = cc.spriteFrameCache.getSpriteFrame("explosion_03.png");
        var sp = new cc.Sprite(frame)
添加单张图片

cc.spriteFrameCache.addSpriteFrames(res.animation_plist);  //加载plist文件
        var mExplodeFrames = [];
        for (var i=1;i<17;i++)
        {
            var frame = cc.spriteFrameCache.getSpriteFrame("explosion_"+("00"+i).slice(-2)+".png");
            mExplodeFrames.push(frame);
        }
        var anim = new cc.Animation(mExplodeFrames, 0.04);
  
  var sp = new cc.Sprite()
                sp.setPosition(touch.getLocation())
                that.addChild(sp)
                sp.runAction(cc.sequence(cc.animate(anim), cc.fadeOut(0.5)))

自定义事件
使得子弹层和飞机层不需要存储数组
1.添加自定义事件的侦听
 cc.eventManager.addCustomEvent("event_name",
 function(event){
  var data = event.getUserData()
 })
2.在合适的时机抛出自定义事件
 cc.eventManager.dispatchCustomEvent("event_name", [1,2,3])
3.在合适的时候清除 一定要注意是只针对一个子弹的移除

 

打飞机整理
敌人飞机多样性
 外观,发射子弹频率,出现频率,血量,移动速度
 this.color = cc.color(parseInt(Math.random()*255),parseInt(Math.random()*255),parseInt(Math.random()*255),255)
 
 var EnemyData = {
  enemy_1:{
   pic:"res/plane.png",
  },
  enemy_2:{
   pic:"res/test_plane.jpg",
  },
 }
 
 this.enemyData = EnemyData["enemy_"+type]


加道具
添加道具Layer 并且接受event来创建道具


1.如果在一个区域内拖拽一个Sprite
2.子弹层独立了创建子弹的行为,飞机只是发出坐标事件
3.使得敌机飞机时间发射子弹
 fireCount:0,    //发射子弹时间累计
    fireTargetCount:0,
 
  update:function(delay){
        this.fireCount += delay //累计叠加值
        if(this.fireCount > this.fireTargetCount){  //到达临界值 发射子弹
            this.fireCount = 0
            this.fireTargetCount = 1+Math.random()*(GameConfig.enemy_fire_speed - 1)  //然后重置一个随机值
            cc.eventManager.dispatchCustomEvent(GameEvent.ENEMY_PLANE_FIRE, this.getPosition())
        }
 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值