我正在用 C# 在 Godot 4 中制作 2d 自上而下的游戏,但我无法让敌人 AI 向玩家移动。它唯一跟随玩家的时间是当玩家在敌人下方并接触敌人时。
这是我的敌人移动代码:
public override void _PhysicsProcess(double delta)
{
Move();
MoveAndSlide();
}
public void Move()
{
if (_player != null)
{
LookAt(_player.GlobalPosition);
Vector2 direction = (GlobalPosition - _player.GlobalPosition).Normalized();
Velocity = direction * Speed;
}
else
{
Velocity = Vector2.Zero;
}
}
当前计算的方向应该使敌人远离玩家,尝试切换
GlobalPosition - _player.GlobalPosition
:
Vector2 direction = (_player.GlobalPosition - GlobalPosition).Normalized();