12345678910111213141516171819202122232425262728293031 |
- extends Node2D
- # member variables here, example:
- # var a=2
- # var b="textvar"
- var thread = Thread.new()
- #this function runs in a thread!
- #threads always take one userdata argument
- func _bg_load(path):
- print("THREAD FUNC!")
- #load the resource
- var tex = ResourceLoader.load(path)
- #call _bg_load_done on main thread
- call_deferred("_bg_load_done")
- return tex #return it
- func _bg_load_done():
- #wait for the thread to complete, get the returned value
- var tex = thread.wait_to_finish()
- #set to the sprite
- get_node("sprite").set_texture(tex)
- func _on_load_pressed():
- if (thread.is_active()):
- #already working
- return
- print("START THREAD!")
- thread.start(self,"_bg_load","res://mona.png")
|