Phaser3入门教程:第一个Phaser3游戏(中文版)(十)

  • 跳跃的炸弹

 

在游戏中,我们还要增加一些捣蛋的家伙,使游戏有点挑战性,我们现在就加入这一环节。

思路是这样的:当我们第一次抓完所有的星星后,我们投放一个跳跃的炸弹。炸弹在关卡中跳来跳去,如果玩家碰到炸弹就算失败。拿到所有星星后,星星会重新落下让你再次收集,然后再多投放一个炸弹。玩家的任务就是:尽可能得到高分而不死掉。

第一件事是我们需要一组炸弹和一对碰撞器:

bombs = this.physics.add.group();

 

this.physics.add.collider(bombs, platforms);

 

this.physics.add.collider(player, bombs, hitBomb, null, this);

炸弹碰到平台自然会被弹回,如果碰到玩家就调用hitBomb函数,并停止游戏,玩家变成红色:

function hitBomb (player, bomb)

{

    this.physics.pause();

 

    player.setTint(0xff0000);

 

    player.anims.play('turn');

 

    gameOver = true;

}

为了投放炸弹,我们还要修改collectStar函数:

function collectStar (player, star)

{

    star.disableBody(true, true);

 

    score += 10;

    scoreText.setText('Score: ' + score);

 

    if (stars.countActive(true) === 0)

    {

        stars.children.iterate(function (child) {

 

            child.enableBody(true, child.x, 0, true, true);

 

        });

 

        var x = (player.x < 400) ? Phaser.Math.Between(400, 800) : Phaser.Math.Between(0, 400);

 

        var bomb = bombs.create(x, 16, 'bomb');

        bomb.setBounce(1);

        bomb.setCollideWorldBounds(true);

        bomb.setVelocity(Phaser.Math.Between(-200, 200), 20);

        bomb.allowGravity = false;

 

    }

}

我们使用了组的方法countActive来查看还有多少星星是活动。如果没有,说明玩家已将拿到了所有的星星。然后我们调用iterate函数重新激活所有的星星,并把它们的y轴位置设为0 。于是它们会在次从屏幕顶部落下。下一部分代码就是制造炸弹了,我们首先会为炸弹产生一个随机的x坐标,但会避开玩家的位置,让人感觉这是偶然发生的。炸弹会在屏幕内弹跳、碰撞。它们不会受到重力的影响,而且速度是随机的。

最终,我们得到一个在屏幕中弹跳小炸弹。刚开始完时,这是很容易的,但随着炸弹数量的增加,你会发现躲避它们可是有极高难度的哟!

现在,我们已经完成了游戏的制作。

 

  • 结束语

 

你已经学会了如何创建一个带有物理属性的精灵,如何控制它的动画效果,以及在游戏中如何与其他物体互动。你还可以增加更多的内容。比如增加场景的尺寸,让镜头滚动;增加不同类型的敌人;不同的得分项;给玩家来个生命条等等。

对于这些不太激烈的游戏类型,你可以设计让玩家挑战更快速的抓完星星。

在完成本教程后,可以看到官网还提供上百个范例,为你在将来的项目打下坚实的基础。如果你有任何问题,还可以在Phaser的论坛上寻求帮助。

很抱歉,根据提供的引用内容,我无法找到与"phaser3 rgp"相关的信息。可能是没有提供与此相关的引用内容。请提供更多的信息或具体问题,以便我可以更好地回答您的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [phaser3-vjoy-plugin:Phaser3的虚拟操纵杆插件](https://download.csdn.net/download/weixin_42153691/15000739)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [phaser3-flappy-bird:phaser3的软盘鸟示例](https://download.csdn.net/download/weixin_42125826/15082687)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [phaser3-planck:在Phaser3中实现planck.js物理](https://download.csdn.net/download/weixin_42129412/18786991)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值