fx: wrapping
This commit is contained in:
@@ -6,7 +6,7 @@ var mainSceneInstance
|
|||||||
# Screen
|
# Screen
|
||||||
var screen_size = Vector2(1920.0, 1080.0) # Default screen size (this is a float for some reason)
|
var screen_size = Vector2(1920.0, 1080.0) # Default screen size (this is a float for some reason)
|
||||||
var viewport_size
|
var viewport_size
|
||||||
@onready var extent: Rect2 = get_viewport().get_visible_rect()
|
var extent: Rect2
|
||||||
|
|
||||||
# utils.
|
# utils.
|
||||||
var rng = RandomNumberGenerator.new()
|
var rng = RandomNumberGenerator.new()
|
||||||
@@ -57,6 +57,8 @@ func init_screen_size(x:float, y:float) -> void:
|
|||||||
screen_size.x = x
|
screen_size.x = x
|
||||||
screen_size.y = y
|
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)
|
# This can take a vector of any size (but should be 2d, other components are unused)
|
||||||
func get_boundaried_position(position):
|
func get_boundaried_position(position):
|
||||||
# clamp
|
# clamp
|
||||||
|
|||||||
@@ -52,34 +52,34 @@ func _handle_wrapping():
|
|||||||
# Find corresponding section of the screen
|
# 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:
|
if owner.collision.position.x < GameManager.screen_size.x/2 and owner.collision.position.y < GameManager.screen_size.y/2:
|
||||||
# Right
|
# 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
|
# 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
|
# 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:
|
elif owner.collision.position.x < GameManager.screen_size.x/2:
|
||||||
# Top
|
# 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
|
# 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
|
# 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:
|
elif owner.collision.position.y < GameManager.screen_size.y/2:
|
||||||
# Left
|
# 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
|
# 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
|
# 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:
|
else:
|
||||||
# Left
|
# 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
|
# 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
|
# 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