bovido/scripts/player/player.gd

43 lines
1.1 KiB
GDScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

class_name Player
extends CharacterBody2D
const y_spawn_offset = -8
signal hit_ball
signal ball_starts_colliding
signal ball_stops_colliding
@export var speed = 120
@onready var tile_map: TileMap = get_parent()
func _ready():
var spawn_cell = tile_map.get_bottom_spawn_cell()
position = tile_map.map_to_local(spawn_cell) + Vector2(0, y_spawn_offset)
func get_input_direction():
return Input.get_vector("move_left", "move_right", "move_up", "move_down")
func flip_sprite():
if Input.is_action_pressed("move_left"):
$Sprite2D.flip_h = true
elif Input.is_action_pressed("move_right"):
$Sprite2D.flip_h = false
func play_idle_animation():
$AnimationPlayer.play("idle")
func play_walk_animation():
$AnimationPlayer.play("walk")
func play_hit_ball_animation():
$AnimationPlayer.speed_scale = 0.8
$AnimationPlayer.play("hit_ball")
await $AnimationPlayer.animation_finished
$AnimationPlayer.speed_scale = 1
func _on_area_2d_body_entered(_body):
# As players Area2D only collide with balls
# We only enter this function after colliding with a ball
ball_starts_colliding.emit()
func _on_area_2d_body_exited(_body):
ball_stops_colliding.emit()