Fix hit detection

This commit is contained in:
2023-09-03 19:40:34 -07:00
parent aa9b5a1793
commit 53d8129cbb
5 changed files with 50 additions and 15 deletions

View File

@@ -1,9 +1,10 @@
using Godot;
using System.Linq;
public partial class MeleeEnemy : CharacterBody3D
public partial class MeleeEnemy : BasicEnemy
{
private float _speed = 1.0f;
[Export]
private float _speed = 0.4f;
public override void _PhysicsProcess(double delta)
{
@@ -12,9 +13,22 @@ public partial class MeleeEnemy : CharacterBody3D
{
var convertedPlayers = players.Select(x => (Node3D)x);
var target = convertedPlayers.OrderBy(x => Position.DistanceTo(x.Position)).FirstOrDefault();
GD.Print(Position.DirectionTo(target.Position));
Position = Position.MoveToward(target.Position, _speed * (float)delta);
MoveAndSlide();
}
}
}
public partial class BasicEnemy : CharacterBody3D
{
public void OnHit(Node3D node)
{
QueueFree();
}
private void DebugOnHit()
{
var node = new Node3D();
OnHit(node);
}
}