Godot Version
4.3
Question
Hello,
I am trying to use the new parallax 2D node but I am encountering the problem that I have two parallax layers and the second layer isn´t scrolling even though set so in the code. The position.y of Sprite2D2 just doesn´t change at all. I have checked via print.
The second layer also works fine when I add the texture beforehand. It seems to only fail with the texture uploaded via code.
Does anyone have an idea why?
extends Node2D
@onready var viewport_size := Vector2(Globals.viewport_dimensions)
@onready var current_texture = load("res://Assets/Background/Colorful_Nebulas.jpg")
var next_texture
var backgrounds = {}
# Called when the node enters the scene tree for the first time.
func _ready():
$Spacefog/Sprite2D.texture = current_texture
$Spacefog/Sprite2D.offset.y = (-1 * $Spacefog/Sprite2D.texture.get_size().y) + viewport_size.y
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
#set parallax effect for spacefog
$Spacefog.scroll_offset.y += 1200*delta # pixels per second that background moves
$Spacefog2.scroll_offset.y += 1200*delta # pixels per second that background moves
print("position: ", $Spacefog2/Sprite2D2.position.y) # Debug print
func _on_timer_next_timeout() -> void:
next_texture = load("res://Assets/Background/desert_Background.png")
$Spacefog2/Sprite2D2.texture = next_texture
$Spacefog2/Sprite2D2.position.y = $Spacefog/Sprite2D.position.y - $Spacefog/Sprite2D.texture.get_size().y*2
Best regards!