clowder/plr.gd
2024-03-03 20:22:50 +01:00

47 lines
1.2 KiB
GDScript

extends CharacterBody2D
signal interact
signal interact2
const SPEED = 300.0
@export var moving = true
# Get the gravity from the project settings to be synced with RigidBody nodes.
func handle_layer(direction):
if round(direction.y) == -1:
$character/body/tail.z_index = 1
$character/body/face.visible = false
elif round(direction.y) == 1:
$character/body/tail.z_index = 0
$character/body/face.visible = true
func _physics_process(_delta):
if Input.is_action_just_pressed("interact"):
interact.emit()
if Input.is_action_just_pressed("interact 2"):
interact2.emit()
if not moving: return
# Get the input direction and handle the movement/deceleration.
# As good practice, you should replace UI actions with custom gawameplay actions.
var direction = Input.get_vector("left","right","up","down")
if direction == Vector2(0,0):
$AnimationPlayer.current_animation = "idle"
else:
handle_layer(direction)
print(direction.x)
if not direction.x == 0:
$character.scale.x = round(direction.x)
$AnimationPlayer.current_animation = "walk"
else:
$AnimationPlayer.current_animation = "vmove"
velocity = direction * SPEED
move_and_slide()