更改绑定到 Godot 中相同密钥输入的攻击类型/状态

changing attack types / states which are bound to same key input in godot

提问人:Christopher Ciftci 提问时间:3/29/2023 更新时间:3/30/2023 访问量:38

问:

我有一个玩家角色,有 2 种攻击类型,一拳和一记连击。我希望当玩家不靠近任何物体/或敌人 AI 时,可以打出一拳。如果玩家在攻击距离内,则进行组合攻击。

问题是我不知道如何切换攻击,因为它们都绑定到“J”键。 当玩家处于“body_entered_area”对象中时,我试图改变攻击,但它不起作用。

我在网上也找不到任何教程。谢谢

我设置了一个基本的玩家移动和攻击脚本,然后添加了一个带有组合的功能。然后我尝试在玩家进入敌人区域身体时初始化连击。但没有成功

输入 按键 切换

评论


答:

0赞 Atelier Morph Art - Voleybot 3/30/2023 #1

首先,我会尝试打印body_entered_area时更改的信号 - 添加一些,例如var:

var close_to_enemy

当输入正文并body_exited_area时,它发生了变化:

 func body_entered_area():
     close_to_enemy = true
     print("close_to_enemy")


 func body_exited_area():
      close_to_enemy = false
      print("far_from_enemy")

如果这有效,您可以帮助在控制台上导航该打印件。

之后,您可以将该变量(我们创建的)添加到您的动画/关键帧触发器/等中,以更改该操作取决于该变量。

评论

0赞 Christopher Ciftci 4/7/2023
感谢您的回复。确认玩家在接近敌人碰撞时确实记录了它的存在。但是我认为问题在于,由于组合攻击是基于物理的,因此碰撞检测代码也需要在_physics_process中。我正在研究使用“椭圆形体”触发组合的各种不同方法。问题似乎是组合没有触发,因为它在“func body_entered”参数中,而不是在物理过程中。老实说,这对我来说太过分了.我还在学习编码。无论如何谢谢你
0赞 Christopher Ciftci 4/26/2023
只是想再次为您的答案添加一个迟到的回复。我现在理解了你答案的含义,并有点想通了。由于我缺乏编码经验,我无法理解您的答案,但我非常感谢您回答了我的问题。
0赞 Atelier Morph Art - Voleybot 4/28/2023
没关系。我多次坚持编码。就我而言,只是 - 耐心。很多时候,一切都是为了学习小东西,这些东西会演变成更大的东西。你可以放弃。没关系。但是,如果您决定再试一次 - 您肯定会更接近解决方案......