通过前面一篇教程,这个游戏基本功能已经完成了。这节,我们添加一些高身价的演员。就是那两个高级月饼盒子。
我们在每次等级加1的时候随机出一个高级演员,这个演员如果吃到了直接加5分。
先修改添加月饼的代码。
// 添加月饼
function addMoon() {
var index = game.rnd.between(1, 7);//随机一个1到7的数字,好创建对应数字的月饼
var moon;
if (score >0 && score % 10 == 0) {
var name = game.rnd.between(0, 1) === 0 ? 's1' : 's2';
moon = moonGroup.create(0, 0, name);
moon.name = 'special';
game.physics.arcade.enable(moon);
} else {
moon = moonGroup.create(0, 0, index.toString());//创建月饼
}
moon.anchor.set(0.5); // 设置演员锚点为中心点
var x = game.width - moon.width / 2;
var y = -moon.height / 2;
moon.x = x;
moon.y = y;
var moonEnterTween = game.add.tween(moon).to({y : game.height / 2 },
game.rnd.between(500, 1000), 'Bounce', true);
moonEnterTween.onComplete.add(moveMoon, this, 0, moon);
}
在得分每次加了5分后添加一个高身价的演员。这个演员有个特殊的name为“special”,这个name用于在碰撞检测的时候判断是不是一个特殊的演员。
function collectMoon(player, moon) {
playerTween.stop();
if(moon.name === 'special') {
score += 5;
} else {
score += 1;
}
if(score > 0 && score % 10 === 0) {
level += 1;
resetSpeed();
}
bang.play();//播放吃到月饼的声音
moon.kill();//销毁月饼
player.kill();//销毁吃货
updateScore();//更新得分
addMoon(); //添加一个新的月饼
addPlayer();//添加一个新的吃货
}
看看结果。
高级演员上场吃中一个就是5分(●'◡'●)。
本节代码下载地址:
码云
github
网友评论