Reputation: 405
I had the following code inside an all_tween_completed
signal:
func set_tween():
if move_range == 0:
return
move_range *= -1
var move_tween = get_tree().create_tween()
move_tween.tween_property(self, "position:x",
position.x + move_range,
move_speed) \
.from(position.x) \
.set_trans(Tween.TRANS_QUAD) \
.set_ease(Tween.EASE_IN_OUT)
So that after everything moved I swap sign and move to the other side. However, in Godot 4 there is no such signal. I already changed the code to accommodate for the new syntax but I am not sure how can I reproduce the previous behaviour. Do I need to keep calling and emitting the finished
signal from Tween?
Upvotes: 1
Views: 2528
Reputation: 3500
How about creating an infinite loop of a two tween sequence? One tween from the start position to end position and the other from the end position to the start position.
Example Code:
var start_x := position.x
var end_x := position.x + move_range
var tween := create_tween().set_loops()
tween.tween_property(self, "position:x", end_x, move_speed).from(start_x)
tween.tween_property(self, "position:x", start_x, move_speed).from(end_x)
Upvotes: 3