princesse: réorganuisation du code
Externalisation des fonctions pour gérer les animations et leur orientation.
This commit is contained in:
37
princesse.gd
37
princesse.gd
@@ -185,6 +185,25 @@ func end_jump():
|
||||
jumping_step = -1
|
||||
jump_key_counter = 0
|
||||
|
||||
func choose_animation_orientation() -> void:
|
||||
if not is_zero_approx(velocity.x):
|
||||
if velocity.x > 0.0:
|
||||
animation.scale.x = 1.0
|
||||
else:
|
||||
animation.scale.x = -1.0
|
||||
|
||||
if grab_wall:
|
||||
if wall_detect_left.is_colliding():
|
||||
animation.scale.x = 1
|
||||
elif wall_detect_right.is_colliding():
|
||||
animation.scale.x = -1
|
||||
|
||||
func play_animation() -> void:
|
||||
var anim := get_new_animation()
|
||||
if anim != animation.animation:
|
||||
animation.animation = anim
|
||||
animation.play()
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
|
||||
coyote_ground.append(is_on_floor())
|
||||
@@ -234,18 +253,6 @@ func _physics_process(delta: float) -> void:
|
||||
|
||||
velocity.x = walk(direction)
|
||||
|
||||
if not is_zero_approx(velocity.x):
|
||||
if velocity.x > 0.0:
|
||||
animation.scale.x = 1.0
|
||||
else:
|
||||
animation.scale.x = -1.0
|
||||
|
||||
if grab_wall:
|
||||
if wall_detect_left.is_colliding():
|
||||
animation.scale.x = 1
|
||||
elif wall_detect_right.is_colliding():
|
||||
animation.scale.x = -1
|
||||
|
||||
#floor_stop_on_slope = not platform_detector.is_colliding()
|
||||
var collision = move_and_slide()
|
||||
if collision:
|
||||
@@ -257,10 +264,8 @@ func _physics_process(delta: float) -> void:
|
||||
if layer_of_collision == PICS_BLOCK_LAYER:
|
||||
get_tree(). reload_current_scene()
|
||||
|
||||
var anim := get_new_animation()
|
||||
if anim != animation.animation:
|
||||
animation.animation = anim
|
||||
animation.play()
|
||||
choose_animation_orientation()
|
||||
play_animation()
|
||||
|
||||
|
||||
func get_new_animation() -> String:
|
||||
|
||||
Reference in New Issue
Block a user