class_name Background extends TextureRect func _process(delta: float) -> void: var offset := Vector2(8.0, 8.0) var tile_size := texture.get_size() var viewport_origin := -get_viewport().canvas_transform.origin var viewport_size := get_viewport_rect().size position = (viewport_origin / tile_size).floor() * tile_size - offset size = ((viewport_size + offset) / tile_size + Vector2.ONE).ceil() * tile_size