美文网首页Phaser.js
入门7 高身价的演员

入门7 高身价的演员

作者: 工匠前沿 | 来源:发表于2018-01-09 12:36 被阅读0次

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

        本文链接:https://www.haomeiwen.com/subject/menbnxtx.html