How to move a (sprite) node on timeout()?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By friendlyapprentice
:warning: Old Version Published before Godot 3 was released.

I’d like “Sprite node” to move in a direction while “Timer node” emits timeout().
How should my script look?

Node
-Timer
-Sprite

extends Node
var speed=100
var magnitude=Vector2()
var velocity=Vector2()

func _ready():
	set_fixed_process(true)

func _fixed_process(delta):
	velocity=speed*magnitude*delta
	get_node("Timer").set_wait_time(4)
	get_node("Sprite").get_pos()
	
func _Intro():
	magnitude=Vector2(100,0)
	get_node("Sprite").set_pos(get_pos()+velocity)
	
func _Timer():
	get_node("Timer").connect("timeout",self,"_Intro")

while “Timer node” emits timeout?
did you mean when timeout?

volzhs | 2017-09-27 07:38

:bust_in_silhouette: Reply From: PerduGames

I do not quite understand, but I think it’s something like this:

  extends Node
    var speed=100
    var magnitude=Vector2()
    var velocity=Vector2()
    
    func _ready():
        get_node("Timer").set_wait_time(4)
        set_fixed_process(true)
    
    func _fixed_process(delta):
        velocity=speed*magnitude*delta
        if get_time_left() > 0:
            func _Intro()
    
    func _Intro():
        magnitude=Vector2(100,0)
        get_node("Sprite").set_pos(get_pos()+velocity)
    
    func _Timer():
        get_node("Timer").connect("timeout",self,"_Intro")