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())
}
}