入門7 高身價的演員

通過前面一篇教程,這個游戲基本功能已經(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容