mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-04 13:05:54 +00:00
77 lines
1.2 KiB
C#
77 lines
1.2 KiB
C#
using Godot;
|
|
using System;
|
|
|
|
public partial class PlayerMovement : CharacterBody2D
|
|
{
|
|
[Export]
|
|
public int Speed { get; set; } = 400;
|
|
|
|
private AnimatedSprite2D _animatedSprite;
|
|
|
|
public override void _Ready()
|
|
{
|
|
_animatedSprite = GetNode<AnimatedSprite2D>("AnimatedSprite2D");
|
|
}
|
|
|
|
/*public override _Process(float _delta)
|
|
{
|
|
if (Input.IsActionPressed("ui_right"))
|
|
{
|
|
_animatedSprite.Play("run");
|
|
}
|
|
else
|
|
{
|
|
_animatedSprite.Stop();
|
|
}
|
|
}*/
|
|
|
|
public override void _Process(double delta)
|
|
{
|
|
SetAnimation();
|
|
}
|
|
|
|
private void SetAnimation()
|
|
{
|
|
|
|
if (Velocity.X == 0 && Velocity.Y == 0)
|
|
{
|
|
_animatedSprite.SpeedScale = 0;
|
|
}
|
|
else
|
|
{
|
|
_animatedSprite.SpeedScale = 1;
|
|
}
|
|
|
|
if (Velocity.X > 0)
|
|
{
|
|
_animatedSprite.Play("walk_right");
|
|
}
|
|
else if (Velocity.X < 0)
|
|
{
|
|
_animatedSprite.Play("walk_left");
|
|
}
|
|
else if (Velocity.Y > 0)
|
|
{
|
|
_animatedSprite.Play("walk_down");
|
|
}
|
|
else if (Velocity.Y < 0)
|
|
{
|
|
_animatedSprite.Play("walk_up");
|
|
}
|
|
|
|
|
|
}
|
|
|
|
public Vector2 GetInput()
|
|
{
|
|
return Input.GetVector("left", "right", "up", "down");
|
|
}
|
|
|
|
public override void _PhysicsProcess(double delta)
|
|
{
|
|
var inputDirection = GetInput();
|
|
Velocity = inputDirection * (float)(Speed * delta);
|
|
|
|
MoveAndSlide();
|
|
}
|
|
}
|