You want to allow the player to “wrap around” the screen, teleporting from one side of the screen to the other. This is a common feature, especially in old-school 2D games (think Pac-man).
Get your screen (viewport) size
onready var screen_size = get_viewport_rect().size
get_viewport_rect() is available to any
CanvasItem derived node.
Compare your player’s position
if position.x > screen_size.x: position.x = 0 if position.x < 0: position.x = screen_size.x if position.y > screen_size.y: position.y = 0 if position.y < 0: position.y = screen_size.y
Note that this is using the node’s
position, which is usually the center of your sprite and/or body.
The above code can be simplified using GDScript’s
wrapf() function, which “loops” a value between the given limits.
position.x = wrapf(position.x, 0, screen_size.x) position.y = wrapf(position.y, 0, screen_size.y)