12345678910111213141516171819202122232425262728 |
- extends Node2D
- 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")
|