Difference between revisions of "Core.asyncCall"

From GiderosMobile
(added random example :-()
Line 14: Line 14:
 
'''parameters''': (multiple) multiple parameters to pass to function '''optional'''<br/>
 
'''parameters''': (multiple) multiple parameters to pass to function '''optional'''<br/>
  
=== Example ===
+
=== Examples ===
 
<source lang="lua">
 
<source lang="lua">
 
local function scaleTextsAndBtn()
 
local function scaleTextsAndBtn()
Line 35: Line 35:
 
   
 
   
 
Core.asyncCall(scaleTextsAndBtn)
 
Core.asyncCall(scaleTextsAndBtn)
 +
</source>
 +
 +
'''asyncCall used in a Class and with parameters'''
 +
<source lang="lua">
 +
if self.imgui:button("VALIDATE") then
 +
-- self:gotoScene("levelX")
 +
Core.asyncCall(LevelX.gotoScene, self, "levelX")
 +
end
 +
...
 +
 +
-- change scene
 +
function LevelX:gotoScene(xscene)
 +
scenemanager:changeScene(
 +
xscene, 1,
 +
transitions[math.random(1, #transitions)],
 +
easings[math.random(1, #easings)]
 +
)
 +
end
 
</source>
 
</source>
  
 
{{Core}}
 
{{Core}}

Revision as of 16:25, 16 March 2023

Available since: Gideros 2016.06
Class: Core

Description

Launches a function on a separate thread as a background task.

Core.asyncCall(task,parameters)

Background threads are only executed when the main thread is not running.

Parameters

task: (function) function to run in background
parameters: (multiple) multiple parameters to pass to function optional

Examples

local function scaleTextsAndBtn()
	local tempFontScale=1.02

	Core.yield(.2)
	txt1_noads:setScale(tempFontScale)
	Core.yield(.1)
	txt1_noads:setScale(1)

	txt2_plusincome:setScale(tempFontScale)
	Core.yield(.1)
	txt2_plusincome:setScale(1)

	Core.yield(.1)
	btn_OK:setScale(1.04)
	Core.yield(.2)
	btn_OK:setScale(1)
end
 
Core.asyncCall(scaleTextsAndBtn)

asyncCall used in a Class and with parameters

	if self.imgui:button("VALIDATE") then
--		self:gotoScene("levelX")
		Core.asyncCall(LevelX.gotoScene, self, "levelX")
	end
...

-- change scene
function LevelX:gotoScene(xscene)
	scenemanager:changeScene(
		xscene, 1,
		transitions[math.random(1, #transitions)],
		easings[math.random(1, #easings)]
	)
end