32 lines
701 B
GDScript3
32 lines
701 B
GDScript3
|
|
||
|
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")
|