入门7 高身价的演员

通过前面一篇教程,这个游戏基本功能已经完成了。这节,我们添加一些高身价的演员。就是那两个高级月饼盒子。
我们在每次等级加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();//添加一个新的吃货
}

看看结果。

11.gif

高级演员上场吃中一个就是5分(●'◡'●)。
本节代码下载地址:
码云
github
入门7 高身价的演员_第1张图片
宣传二维码图片.png

你可能感兴趣的:(入门7 高身价的演员)