fx: wrapping

This commit is contained in:
djaidjai committed 2026-03-01 17:41:15 +01:00
1 parent 0e447f80ec
commit 9d9ed22ea8
2 files changed
+15 -13

No files matched your search

+3 -1
View File
@@ -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
+12 -12
View File
@@ -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)
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.