From 9d9ed22ea83172fa1675c499a3037a4857c455c5 Mon Sep 17 00:00:00 2001 From: Djairo Date: Sun, 1 Mar 2026 17:41:15 +0100 Subject: [PATCH] fx: wrapping --- evolve-die-repeat/game_manager.gd | 4 +++- evolve-die-repeat/shared/wrapping_manager.gd | 24 ++++++++++---------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/evolve-die-repeat/game_manager.gd b/evolve-die-repeat/game_manager.gd index 878933f..676c230 100644 --- a/evolve-die-repeat/game_manager.gd +++ b/evolve-die-repeat/game_manager.gd @@ -6,7 +6,7 @@ var mainSceneInstance # Screen var screen_size = Vector2(1920.0, 1080.0) # Default screen size (this is a float for some reason) var viewport_size -@onready var extent: Rect2 = get_viewport().get_visible_rect() +var extent: Rect2 # utils. var rng = RandomNumberGenerator.new() @@ -57,6 +57,8 @@ func init_screen_size(x:float, y:float) -> void: screen_size.x = x screen_size.y = y + extent = Rect2(Vector2(-viewport_size.x/2, -viewport_size.y/2), viewport_size + screen_size) + # This can take a vector of any size (but should be 2d, other components are unused) func get_boundaried_position(position): # clamp diff --git a/evolve-die-repeat/shared/wrapping_manager.gd b/evolve-die-repeat/shared/wrapping_manager.gd index fd35b6a..b2a19c8 100644 --- a/evolve-die-repeat/shared/wrapping_manager.gd +++ b/evolve-die-repeat/shared/wrapping_manager.gd @@ -52,34 +52,34 @@ func _handle_wrapping(): # Find corresponding section of the screen if owner.collision.position.x < GameManager.screen_size.x/2 and owner.collision.position.y < GameManager.screen_size.y/2: # Right - mirrors[0].global_position = owner.collision.global_position + Vector2(GameManager.screen_size.x, 0) + mirrors[0].global_position = owner.collision.global_position + Vector2(GameManager.extent.size.x, 0) # Diag - mirrors[2].global_position = owner.collision.global_position + Vector2(GameManager.screen_size.x, GameManager.screen_size.y) + mirrors[2].global_position = owner.collision.global_position + Vector2(GameManager.extent.size.x, GameManager.extent.size.y) # Bottom - mirrors[1].global_position = owner.collision.global_position + Vector2(0, GameManager.screen_size.y) + mirrors[1].global_position = owner.collision.global_position + Vector2(0, GameManager.extent.size.y) elif owner.collision.position.x < GameManager.screen_size.x/2: # Top - mirrors[0].global_position = owner.collision.global_position + Vector2(0, - GameManager.screen_size.y) + mirrors[0].global_position = owner.collision.global_position + Vector2(0, - GameManager.extent.size.y) # Diag - mirrors[1].global_position = owner.collision.global_position + Vector2(GameManager.screen_size.x, - GameManager.screen_size.y) + mirrors[1].global_position = owner.collision.global_position + Vector2(GameManager.extent.size.x, - GameManager.extent.size.y) # Right - mirrors[2].global_position = owner.collision.global_position + Vector2(GameManager.screen_size.x, 0) + mirrors[2].global_position = owner.collision.global_position + Vector2(GameManager.extent.size.x, 0) elif owner.collision.position.y < GameManager.screen_size.y/2: # Left - mirrors[0].global_position = owner.collision.global_position + Vector2(- GameManager.screen_size.x, 0) + mirrors[0].global_position = owner.collision.global_position + Vector2(- GameManager.extent.size.x, 0) # Bottom - mirrors[1].global_position = owner.collision.global_position + Vector2(0, GameManager.screen_size.y) + mirrors[1].global_position = owner.collision.global_position + Vector2(0, GameManager.extent.size.y) # Diag - mirrors[2].global_position = owner.collision.global_position + Vector2(- GameManager.screen_size.x, GameManager.screen_size.y) + mirrors[2].global_position = owner.collision.global_position + Vector2(- GameManager.extent.size.x, GameManager.extent.size.y) else: # Left - mirrors[0].global_position = owner.collision.global_position + Vector2(- GameManager.screen_size.x, 0) + mirrors[0].global_position = owner.collision.global_position + Vector2(- GameManager.extent.size.x, 0) # Diag - mirrors[1].global_position = owner.collision.global_position + Vector2(- GameManager.screen_size.x, - GameManager.screen_size.y) + mirrors[1].global_position = owner.collision.global_position + Vector2(- GameManager.extent.size.x, - GameManager.extent.size.y) # Top - mirrors[2].global_position = owner.collision.global_position + Vector2(0, - GameManager.screen_size.y) + mirrors[2].global_position = owner.collision.global_position + Vector2(0, - GameManager.extent.size.y)