游戏开发新手入门教程11:游戏积木之碰撞
  nYrzcJimKxjR 2023年11月02日 89 0

这一节我们将学习游戏中最常用的物理行为:​碰撞。

顾名思义就是两个物体碰到一起。联系到我们的现实世界,你随手将一个东西扔出去,这个东西最终掉落在地上,就可以说这个东西与地面发生了碰撞。在游戏开发中,我们关注的“碰撞”重点在于发生的那一刻:是谁碰到了谁,碰撞的一方或者被撞的一方又该做出怎样的反应。

我们以一个具体的游戏示例进行讲解。

在“飞机大战”游戏中,玩家控制的“战机”会发射“子弹”来进攻“敌机”,当“子弹”击中“敌机”时,“敌机”会被击毁。

分析一下其中涉及到碰撞的部分,当“子弹”击中“敌机”时,“子弹”需要与“敌机”发生碰撞。在发生碰撞后,“子弹”需要做的是将自己移除(因为已经打中敌机了,子弹就不应该再从敌机后方穿过去了),“敌机”需要做的是产生爆炸。

接下来,我们要实现一个这样的效果:点击一下战机,战机就会发射一枚子弹,子弹会向上飞行,击中对面的敌机。

首先导入所需的资源,简单布置一下场景。

游戏开发新手入门教程11:游戏积木之碰撞_游戏开发新手教程

如图,我们导入了“战机”,“敌机”以及一枚“蓝色子弹”。将“敌机”放置在“战机”的正上方,以便与我们发射的“子弹”可以打中它。

接下来,我们实现“战机”的逻辑:点击后,发射一枚向上飞行的子弹。

在“层级管理”中选中战机,点击“添加事件”,选择“当精灵被点击时”。

游戏开发新手入门教程11:游戏积木之碰撞_游戏开发新手教程_02

接着,添加如下的积木块。

游戏开发新手入门教程11:游戏积木之碰撞_可视化游戏开发工具_03

这些积木块做了这样的事情:当战机被点击时,把子弹移动到战机的位置,然后让其一直向上移动。

接着,添加敌机被子弹击中的逻辑。

在“层级管理”中选中“敌机”,点击添加事件,选择“当精灵发生碰撞”。

游戏开发新手入门教程11:游戏积木之碰撞_可视化游戏开发工具_04

选择碰到“​蓝色子弹​”。游戏开发新手入门教程11:游戏积木之碰撞_游戏开发教程_05

这里,我们简单的使用“隐藏自己”积木块来模拟爆炸。

游戏开发新手入门教程11:游戏积木之碰撞_游戏开发教程_06

最后,看起来是这样。当“敌机”碰到“蓝色子弹”后就会隐藏自己。

游戏开发新手入门教程11:游戏积木之碰撞_游戏开发新手教程_07

最后,我们实现一下“子弹碰到敌机”的逻辑。

看上去与敌机的逻辑类似,当“子弹”碰到“敌机”后也是将自己隐藏起来。

游戏开发新手入门教程11:游戏积木之碰撞_可视化游戏开发工具_08

点击“预览场景”看一下效果。

游戏开发新手入门教程11:游戏积木之碰撞_微信小游戏开发教程_09

点击战机,发射一枚子弹,打中敌机,然后子弹和敌机都消失了。

最后,我们再了解一个新的概念:碰撞轮廓

在“图层管理”中选中“敌机”,然后在“图层属性”中点击“调整碰撞轮廓”按钮。

游戏开发新手入门教程11:游戏积木之碰撞_微信小游戏开发教程_10

在“调整碰撞轮廓”的对话框中,可以设置矩形,圆形,多边形的碰撞轮廓。

游戏开发新手入门教程11:游戏积木之碰撞_游戏开发新手教程_11

如图,当前我们选择的是矩形的碰撞轮廓。

如果敌机使用“矩形”碰撞轮廓,在碰撞的时候会发生下面的事情。

游戏开发新手入门教程11:游戏积木之碰撞_游戏开发新手教程_12

如图:如果敌机和子弹的碰撞轮廓都是“矩形”,则它们会在图中的“碰撞位置”处发生碰撞。很明显子弹并没有打中敌机的翅膀,但是敌机已经发生爆炸了,这并不是我们想要的效果。因此,我们需要对敌机的碰撞轮廓进行调整。

打开“调整碰撞轮廓”,选择“多边形”,用鼠标拖拽红色的圆点,调整出适合敌机形状的轮廓。

游戏开发新手入门教程11:游戏积木之碰撞_零代码游戏开发_13

这样,子弹碰到敌机的翅膀上时,才发生碰撞,才算打中敌机。就比较合理了。

游戏开发新手入门教程11:游戏积木之碰撞_游戏开发教程_14

总结一下:我们学习了与碰撞有关的事件和积木,并且使用碰撞实现了一个子弹进攻敌机的例子。另外,我们了解一个新概念“碰撞轮廓”。

练一下:

试着为“敌机”增加发射子弹的能力,来击中玩家的“战机”。


我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我就对啦!欢迎关注公众号【​小蚂蚁教你做游戏​】,领取全网最全的微信小游戏开发原创教程资料。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

nYrzcJimKxjR