通過前面一篇教程,這個游戲基本功能已經(jīng)完成了。這節(jié),我們添加一些高身價的演員。就是那兩個高級月餅盒子。
我們在每次等級加1的時候隨機(jī)出一個高級演員,這個演員如果吃到了直接加5分。
先修改添加月餅的代碼。
// 添加月餅
function addMoon() {
var index = game.rnd.between(1, 7);//隨機(jī)一個1到7的數(shù)字,好創(chuàng)建對應(yīng)數(shù)字的月餅
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());//創(chuàng)建月餅
}
moon.anchor.set(0.5); // 設(shè)置演員錨點(diǎn)為中心點(diǎn)
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();//添加一個新的吃貨
}
看看結(jié)果。
11.gif
高級演員上場吃中一個就是5分(●'?'●)。
本節(jié)代碼下載地址:
碼云
github