35 lines
1,009 B
GDScript
35 lines
1,009 B
GDScript
extends PlayerState
|
|
|
|
|
|
func _enter(_previous_state_path: String, _data: Dictionary = {}) -> void:
|
|
print("entering running")
|
|
player.move_and_slide()
|
|
|
|
|
|
func _state_physics_update(_delta: float) -> void:
|
|
var movement_vector: Vector2 = player.get_movement_vector()
|
|
var direction: Vector2 = movement_vector.normalized()
|
|
player.velocity = direction * player.max_speed
|
|
|
|
player.move_and_slide()
|
|
|
|
if movement_vector.length() <= player.DEADZONE:
|
|
finished.emit(IDLE)
|
|
return
|
|
elif Input.is_action_just_pressed('p'+str(player.id)+'_hit_left'):
|
|
finished.emit(HITTING, {hit_dir = "left"})
|
|
return
|
|
elif Input.is_action_just_pressed('p'+str(player.id)+'_hit_right'):
|
|
finished.emit(HITTING, {hit_dir = "right"})
|
|
return
|
|
|
|
if abs(player.velocity.x) > abs(player.velocity.y):
|
|
player.anim_dir = 'right' if player.velocity.x > 0 else 'left'
|
|
else:
|
|
player.anim_dir = 'down' if player.velocity.y > 0 else 'up'
|
|
|
|
player.sprite.play(player.anim_dir)
|
|
|
|
func _exit() -> void:
|
|
player.sprite.stop()
|
|
print("exit")
|