返回介绍

整活:靶子

发布于 2024-01-08 20:55:54 字数 2830 浏览 0 评论 0 收藏 0

本节来添加靶子,这是一个可以被子弹攻击到的物体,并且会阻碍玩家移动,因此使用 StaticBody2D 作为靶子的根结点:

靶子节点

靶子的唯一用途就是被子弹攻击,因此靶子自身不用编写任何方法。

要做到子弹攻击靶子,我们需要修改子弹脚本,利用子弹根结点 Area2D 的 body_entered 信号,我们可以在子弹碰到某个物理节点(例如 StaticBody2D)时做一些处理。

连接子弹根结点的 body_entered 信号到子弹脚本上,并且写下如下代码:

func _on_body_entered(body:PhysicsBody2D):
    if body.is_in_group("靶子"):
        body.queue_free()
        queue_free()

其中的第一个 if 判断碰到的节点是否在 靶子 组中,所以不要忘了给靶子节点添加到这个组中。if 里面的两行代码就分别是删除靶子和子弹。

[!tip]

我们也可以选择在靶子上编写逻辑,进行"靶子是否碰到子弹"的判断,但一般我们的认知应该是"子弹攻击靶子",所以我习惯把这个判定放到子弹身上。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文