fixed enemy sticking to player bug without weird workaround
This commit is contained in:
@@ -42,7 +42,11 @@ height = 46.0
|
|||||||
[node name="slime" type="CharacterBody2D"]
|
[node name="slime" type="CharacterBody2D"]
|
||||||
collision_layer = 8
|
collision_layer = 8
|
||||||
collision_mask = 9
|
collision_mask = 9
|
||||||
collision_priority = 2.0
|
collision_priority = 20.0
|
||||||
|
motion_mode = 1
|
||||||
|
floor_stop_on_slope = false
|
||||||
|
floor_constant_speed = true
|
||||||
|
platform_on_leave = 2
|
||||||
script = ExtResource("1_l1742")
|
script = ExtResource("1_l1742")
|
||||||
|
|
||||||
[node name="animated_sprite_2d" type="AnimatedSprite2D" parent="."]
|
[node name="animated_sprite_2d" type="AnimatedSprite2D" parent="."]
|
||||||
|
@@ -8,7 +8,7 @@ radius = 33.1361
|
|||||||
[node name="rigid_body_2d" type="RigidBody2D"]
|
[node name="rigid_body_2d" type="RigidBody2D"]
|
||||||
collision_layer = 2
|
collision_layer = 2
|
||||||
collision_mask = 11
|
collision_mask = 11
|
||||||
collision_priority = 20.0
|
collision_priority = 25.0
|
||||||
gravity_scale = 0.0
|
gravity_scale = 0.0
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
@@ -10,7 +10,7 @@ public partial class player : CharacterBody2D
|
|||||||
public AnimatedSprite2D animatedSprite;
|
public AnimatedSprite2D animatedSprite;
|
||||||
public Marker2D rotCenter;
|
public Marker2D rotCenter;
|
||||||
public RayCast2D dialogRayCast;
|
public RayCast2D dialogRayCast;
|
||||||
public static Vector2 globalPlayerPosition; //for enemy path finding with delay for less bugs
|
public static Vector2 globalPlayerPosition;
|
||||||
//console cheats:
|
//console cheats:
|
||||||
private static Camera2D cheatCam;
|
private static Camera2D cheatCam;
|
||||||
private static Camera2D mainCam;
|
private static Camera2D mainCam;
|
||||||
@@ -27,20 +27,15 @@ public partial class player : CharacterBody2D
|
|||||||
}
|
}
|
||||||
public override void _PhysicsProcess(double delta)
|
public override void _PhysicsProcess(double delta)
|
||||||
{
|
{
|
||||||
|
globalPlayerPosition = Position;
|
||||||
if (allowMovement)
|
if (allowMovement)
|
||||||
movement = Input.GetVector("move_left", "move_right", "move_up", "move_down");
|
movement = Input.GetVector("move_left", "move_right", "move_up", "move_down");
|
||||||
else movement = Vector2.Zero;
|
else movement = Vector2.Zero;
|
||||||
if (Math.Round(movement.Length(), 0) != 0) rotCenter.Rotation = new Vector2((float)Math.Round(movement.X, 0), (float)Math.Round(movement.Y, 0)).Angle();
|
if (Math.Round(movement.Length(), 0) != 0) rotCenter.Rotation = new Vector2((float)Math.Round(movement.X, 0), (float)Math.Round(movement.Y, 0)).Angle();
|
||||||
MoveAndCollide(movement * speed * 200 * (float)delta);
|
MoveAndCollide(movement * speed * 200 * (float)delta);
|
||||||
}
|
}
|
||||||
void GlobalPlayerPosition()
|
|
||||||
{
|
|
||||||
if (Mathf.Round(GetNode<Timer>("globalposition_timer").TimeLeft) == 0)
|
|
||||||
globalPlayerPosition = Position;
|
|
||||||
}
|
|
||||||
public override void _Process(double delta)
|
public override void _Process(double delta)
|
||||||
{
|
{
|
||||||
GlobalPlayerPosition();
|
|
||||||
if (Input.IsActionJustPressed("ui_accept") && dialogRayCast.IsColliding() && allowMovement)
|
if (Input.IsActionJustPressed("ui_accept") && dialogRayCast.IsColliding() && allowMovement)
|
||||||
GetNode<dialog_bubble>("dialog_bubble").GetDialog(dialogRayCast.GetCollider().Get("file").AsString(), (Area2D)dialogRayCast.GetCollider());
|
GetNode<dialog_bubble>("dialog_bubble").GetDialog(dialogRayCast.GetCollider().Get("file").AsString(), (Area2D)dialogRayCast.GetCollider());
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user