FluffyFloofGame/Prototypes/tiredbun-prototype-2/Player.gd

46 lines
1.8 KiB
GDScript

extends CharacterBody2D
# Скорость хождения
@export var base_movement_speed = 300.0
func _ready():
pass
func _physics_process(_delta):
var horizontal_direction = Input.get_axis("ui_left", "ui_right")
var vertical_direction = Input.get_axis("ui_up", "ui_down")
if horizontal_direction:
velocity.x = horizontal_direction * base_movement_speed
if vertical_direction:
velocity.x = velocity.x/2
# иначе будет складываться скорость по вертикали и горизонтали
else:
velocity.x = move_toward(velocity.x, 0, base_movement_speed)
if vertical_direction:
velocity.y = vertical_direction * base_movement_speed
if horizontal_direction:
velocity.x = velocity.x/2
# иначе будет складываться скорость по вертикали и горизонтали
else:
velocity.y = move_toward(velocity.y, 0, base_movement_speed)
# Проверка, куда должен смотреть персонаж
# вертикальная анимация имеет больший приоритет
if horizontal_direction < 0 and !vertical_direction:
$PlayerSprite.animation = "left-go"
if horizontal_direction > 0 and !vertical_direction:
$PlayerSprite.animation = "right-go"
if vertical_direction < 0:
$PlayerSprite.animation = "up-go"
if vertical_direction > 0:
$PlayerSprite.animation = "down-go"
# Проверка, должна ли играть анимация
if (velocity.x == 0) and (velocity.y == 0):
$PlayerSprite.frame = 0 # поставить анимацию на первый кадр
$PlayerSprite.stop() # остановить анимацию
else:
$PlayerSprite.play() # играть анимацию
move_and_slide() # Применяет передедвижение