1、一秒发射一个子弹
一秒发射一个子弹,难点就在于如何控制帧频函数的调用频率?
我们可以通过变量计数的功能,来控制帧频函数的调用频率。
例如下面代码:
var a = 0;
app.ticker.add(animate);
function animate() {
if(a == 60){
//相关代码
a = 0;
}
a++;
}
2、一秒创建一架敌机
示例
飞机创建多了,会使页面非常卡顿,所以当飞机超出屏幕范围后删除
var app = new PIXI.Application(500, 600);
document.body.appendChild(app.view);
var bg = new PIXI.Sprite.fromImage("res/bg_02.png");
app.stage.addChild(bg);
app.ticker.add(animate);
function animate(){
createEnemy();
moveEnemy();
}
var enemyList = [];
var ceFlag = 0;
function createEnemy(){
if(ceFlag == 60){
var enemy = new PIXI.Sprite.fromImage("res/enemy_04.png");
enemy.anchor.set(0.5,0.5);
enemy.x = Math.random()*500;
enemy.y = -50;
app.stage.addChild(enemy);
enemyList.push(enemy);
ceFlag = 0;
}
ceFlag++;
}
function moveEnemy(){
for(var i=enemyList.length-1;i>=0;i--){
var enemy = enemyList[i];
enemy.y += 5;
if(enemy.y > 650){
app.stage.removeChild(enemy);
enemyList.splice(i,1);
}
}
}
代码讲解
1、添加帧频函数
app.ticker.add(animate);<br />function animate(){<br />createEnemy();<br />moveEnemy();<br />}<br />添加帧频函数,并通过帧频函数调用createEnemy()、moveEnemy()两个函数
2、定义createEnemy函数
var enemyList = [];
var ceFlag = 0;
function createEnemy(){
if(ceFlag == 60){
var enemy = new PIXI.Sprite.fromImage(“res/enemy_04.png”);
enemy.anchor.set(0.5,0.5);
enemy.x = Math.random()*500;
enemy.y = -50;
app.stage.addChild(enemy);
enemyList.push(enemy);
ceFlag = 0;
}
ceFlag++;
}
定义createEnemy函数,用于创建飞机
var ceFlag = 0:定义ceFlag变量,用于控制createEnemy函数调用的频率,每 1 秒调用 1 次
3、定义moveEnemy函数
function moveEnemy(){
for(var i=enemyList.length-1;i>=0;i—){
var enemy = enemyList[i];
enemy.y += 5;
if(enemy.y > 650){
app.stage.removeChild(enemy);
enemyList.splice(i,1);
}
}
}
定义moveEnemy函数,用于移动飞机