thread.gd 701 B

12345678910111213141516171819202122232425262728293031
  1. extends Node2D
  2. # member variables here, example:
  3. # var a=2
  4. # var b="textvar"
  5. var thread = Thread.new()
  6. #this function runs in a thread!
  7. #threads always take one userdata argument
  8. func _bg_load(path):
  9. print("THREAD FUNC!")
  10. #load the resource
  11. var tex = ResourceLoader.load(path)
  12. #call _bg_load_done on main thread
  13. call_deferred("_bg_load_done")
  14. return tex #return it
  15. func _bg_load_done():
  16. #wait for the thread to complete, get the returned value
  17. var tex = thread.wait_to_finish()
  18. #set to the sprite
  19. get_node("sprite").set_texture(tex)
  20. func _on_load_pressed():
  21. if (thread.is_active()):
  22. #already working
  23. return
  24. print("START THREAD!")
  25. thread.start(self,"_bg_load","res://mona.png")