fx: wrapping
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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