#Beginner Movement script doesnt work

1 messages · Page 1 of 1 (latest)

woven lagoon
#

So i made this Movement script and what did i do wrong

using Godot;

public partial class Player : Area2D
{
[Export]
public int Speed { get; set; } = 400; // How fast the player will move (pixels/sec).

public Vector2 ScreenSize; // Size of the game window.

public override void _Ready()
{
    ScreenSize = GetViewportRect().Size;
}

public override void _Process(double delta)
{
    var velocity = Vector2.Zero; // The player's movement vector.

    if (Input.IsActionPressed("move_right"))
    {
        velocity.x += 1;
    }

    if (Input.IsActionPressed("move_left"))
    {
        velocity.x -= 1;
    }

    if (Input.IsActionPressed("move_down"))
    {
        velocity.y += 1;
    }

    if (Input.IsActionPressed("move_up"))
    {
        velocity.y -= 1;
    }

    var animatedSprite2D = GetNode<AnimatedSprite2D>("AnimatedSprite2D");

    if (velocity.Length() > 0)
    {
        velocity = velocity.Normalized() * Speed;
        animatedSprite2D.Play();
    }
    else
    {
        animatedSprite2D.Stop();
    }
}

}

foggy crown
#

i think you forgot to put at the end the "move_and_slide()" in the _process or _physics_process

lavish pivot
#

It's not a characterbody2D