飞机游戏的整体体系分为三大类:我方飞机、子弹和敌方飞机这三个部分。
前面小操作:建立好需要的图片的素材添加进去,调节好画布大小,让其变成竖屏的,这样有利于飞机操作【画布大小为700,1000最好】
首先说说我方飞机:把我方飞机建立好,我们需要的就是让我方的飞机实现拖动,也就是拖拽事件【onTouchBegan、onTouchMoved、onTouchEnded】。
再来说说子弹:子弹就是与我放飞机相关的,它的位置是处于在飞机前方一点,所以在调试坐标的时候要注意一下,子弹的作用就是为了发射出去击败敌人,所以我们需要让它动起来,动起来的同时就是需要跟着飞机的位置移动并且实现连发的状态。
子弹移动代码:
_init: function () {
cc.eventManager.addCustomListener(USER_FIRE,that.location.bind(this)) 【USER_FIRE:这个在我们一开始的时候需要在最前面定义一下】 }, location:function(event){ var date =event.getUserData(); var bullet = new BulletLayerSprite(); 【BulletLayerSprite:这是我们在一开始要创建的层级管理】 this.addChild(bullet); bullet.setPosition(date.x,date.y+80) },
最后说说敌机:敌机的状态是从上往下掉落,这也就很简单了,只要实现和子弹一样的移动功能,不过要加的就是敌机位置是随机出现的。
敌机代码:
_Enenmy:function(){ var enemyAirplan =new EnemyplaneSprite(); enemyAirplan.setPosition(cc.winSize.width*Math.random(),cc.winSize.height) this.addChild(enemyAirplan) }
实现出现还需要添加一个定时器,不然只会出现一架飞机。
定时器代码:
this.schedule(this._Enenmy, 1, cc.repeatForever, 1) 【就是调用我们一开始敌机的代码】
PS:在子弹和敌机大量出现的过程中,出现的太多我们需要清除掉那些多余的,否则就会占很大内存让游戏越来越卡。
【removeBullet:function (target) { target.removeFromParent(true) }】 这就是清除缓存的代码。