fx: rotation wrapping interaction bug
This commit is contained in:
@@ -30,6 +30,7 @@ func _process(delta: float) -> void:
|
||||
# smoothly rotate
|
||||
if self.rotation != self.desired_rotation: # FIXME: causes the mirror sprites to flip out
|
||||
self.rotation = lerp_angle(self.rotation, self.desired_rotation, clampf(4 * delta, 0, 1))
|
||||
|
||||
# Boundary mirroring
|
||||
_handle_wrapping()
|
||||
|
||||
@@ -62,7 +63,7 @@ func become_injured() -> void:
|
||||
mirrorSprite3.play("Injured")
|
||||
|
||||
func _on_sight_body_entered(body: Node2D) -> void:
|
||||
if body.is_in_group("predators") or (body.is_in_group("player") and health < maxHealth):
|
||||
if body.is_in_group("predators") or body.is_in_group("player"):
|
||||
fsm.transition_to_next_state(fsm.States.FLEEING, {"threat": body})
|
||||
|
||||
|
||||
@@ -94,14 +95,11 @@ func _handle_wrapping():
|
||||
mirrorSprite3.visible = true
|
||||
|
||||
# Right
|
||||
#mirrorSprite1.position = Vector2(sprite.position.x + GameManager.screen_size.x, sprite.position.y)
|
||||
mirrorSprite1.position = Vector2(GameManager.screen_size.x, 0)
|
||||
mirrorSprite1.global_position = global_position + Vector2(GameManager.screen_size.x, 0)
|
||||
# Diag
|
||||
#mirrorSprite2.position = Vector2(sprite.position.x + GameManager.screen_size.x, sprite.position.y + GameManager.screen_size.y)
|
||||
mirrorSprite3.position = Vector2(GameManager.screen_size.x, GameManager.screen_size.y)
|
||||
mirrorSprite3.global_position = global_position + Vector2(GameManager.screen_size.x, GameManager.screen_size.y)
|
||||
# Bottom
|
||||
#mirrorSprite3.position = Vector2(sprite.position.x, sprite.position.y + GameManager.screen_size.y)
|
||||
mirrorSprite2.position = Vector2(0, GameManager.screen_size.y)
|
||||
mirrorSprite2.global_position = global_position + Vector2(0, GameManager.screen_size.y)
|
||||
|
||||
|
||||
elif position.x < GameManager.screen_size.x/2:
|
||||
@@ -111,14 +109,11 @@ func _handle_wrapping():
|
||||
mirrorSprite3.visible = true
|
||||
|
||||
# Top
|
||||
#mirrorSprite1.position = Vector2(sprite.position.x, sprite.position.y - GameManager.screen_size.y)
|
||||
mirrorSprite1.position = Vector2(0, - GameManager.screen_size.y)
|
||||
mirrorSprite1.global_position = global_position + Vector2(0, - GameManager.screen_size.y)
|
||||
# Diag
|
||||
#mirrorSprite2.position = Vector2(sprite.position.x + GameManager.screen_size.x, sprite.position.y - GameManager.screen_size.y)
|
||||
mirrorSprite2.position = Vector2(GameManager.screen_size.x, - GameManager.screen_size.y)
|
||||
mirrorSprite2.global_position = global_position + Vector2(GameManager.screen_size.x, - GameManager.screen_size.y)
|
||||
# Right
|
||||
#mirrorSprite3.position = Vector2(sprite.position.x + GameManager.screen_size.x, sprite.position.y)
|
||||
mirrorSprite3.position = Vector2(GameManager.screen_size.x, 0)
|
||||
mirrorSprite3.global_position = global_position + Vector2(GameManager.screen_size.x, 0)
|
||||
|
||||
|
||||
elif position.y < GameManager.screen_size.y/2:
|
||||
@@ -128,14 +123,11 @@ func _handle_wrapping():
|
||||
mirrorSprite3.visible = true
|
||||
|
||||
# Left
|
||||
#mirrorSprite1.position = Vector2(sprite.position.x - GameManager.screen_size.x, sprite.position.y)
|
||||
mirrorSprite1.position = Vector2(- GameManager.screen_size.x, 0)
|
||||
mirrorSprite1.global_position = global_position + Vector2(- GameManager.screen_size.x, 0)
|
||||
# Bottom
|
||||
#mirrorSprite2.position = Vector2(sprite.position.x, sprite.position.y + GameManager.screen_size.y)
|
||||
mirrorSprite2.position = Vector2(0, GameManager.screen_size.y)
|
||||
mirrorSprite2.global_position = global_position + Vector2(0, GameManager.screen_size.y)
|
||||
# Diag
|
||||
#mirrorSprite3.position = Vector2(sprite.position.x - GameManager.screen_size.x, sprite.position.y + GameManager.screen_size.y)
|
||||
mirrorSprite3.position = Vector2(- GameManager.screen_size.x, GameManager.screen_size.y)
|
||||
mirrorSprite3.global_position = global_position + Vector2(- GameManager.screen_size.x, GameManager.screen_size.y)
|
||||
|
||||
|
||||
else:
|
||||
@@ -145,11 +137,8 @@ func _handle_wrapping():
|
||||
mirrorSprite3.visible = true
|
||||
|
||||
# Left
|
||||
#mirrorSprite1.position = Vector2(sprite.position.x - GameManager.screen_size.x, sprite.position.y)
|
||||
mirrorSprite1.position = Vector2(- GameManager.screen_size.x, 0)
|
||||
mirrorSprite1.global_position = global_position + Vector2(- GameManager.screen_size.x, 0)
|
||||
# Diag
|
||||
#mirrorSprite2.position = Vector2(sprite.position.x - GameManager.screen_size.x, sprite.position.y - GameManager.screen_size.y)
|
||||
mirrorSprite2.position = Vector2(- GameManager.screen_size.x, - GameManager.screen_size.y)
|
||||
mirrorSprite2.global_position = global_position + Vector2(- GameManager.screen_size.x, - GameManager.screen_size.y)
|
||||
# Top
|
||||
#mirrorSprite3.position = Vector2(sprite.position.x, sprite.position.y - GameManager.screen_size.y)
|
||||
mirrorSprite3.position = Vector2(0, - GameManager.screen_size.y)
|
||||
mirrorSprite3.global_position = global_position + Vector2(0, - GameManager.screen_size.y)
|
||||
|
||||
Reference in New Issue
Block a user