smashball/scenes/player/player.gd

24 lines
878 B
GDScript

class_name Player extends CharacterBody2D
const DEADZONE: float = 0.1
@export var id: int = 1
@export var max_speed: float = 90
@onready var sprite: AnimatedSprite2D = $AnimatedSprite2D
@onready var state_machine: StateMachine = $StateMachine
@onready var hit_timer: Timer = $HitTimer
var anim_dir: String
var def_dir: String
func _ready() -> void:
assert(id == 1 or id == 2, "id ("+str(id)+") is invalid")
anim_dir = 'up' if id == 1 else 'down'
def_dir = 'up' if id == 1 else 'down'
hit_timer.connect("timeout", $StateMachine/Hitting._on_hit_end)
func get_movement_vector() -> Vector2:
var x_mov: float = Input.get_action_strength('p'+str(id)+'_move_right') - Input.get_action_strength('p'+str(id)+'_move_left')
var y_mov: float = Input.get_action_strength('p'+str(id)+'_move_down') - Input.get_action_strength('p'+str(id)+'_move_up')
return Vector2(x_mov, y_mov)