В общем думал как реализовать многопоточность (чтобы не путаться во вкладках со скриптами), нашел библиотеку. Вроде все хорошо, но для каких-то вычислений или отслеживания нажатий клавиш и тп, но для Пилота, а именно синтаксиса не подходит, эх.
Скину, может кому-то и поможет в чем-то =)
Примеры (из оф. источника):
http://lualanes.github.io/lanes/Код
--lua
function print ( ... ) return log ( ... ) end print ("clear")
lanes = require "lanes".configure()
local function calculate(a, b, c)
if not a then
error "sample error; propagated to main lane when reading results"
end
return a + b + c
end
local h1= lanes.gen("base", calculate)(1,2,3)
local h2= lanes.gen("base", calculate)(10,20,30)
local h3= lanes.gen("base", calculate)(100,200,300)
print( h1[1], h2[1], h3[1] )
----------------------------------------------------------------------------------------------
--Тело первого потока
function test1()
local ffi = require("ffi")
ffi.cdef[[short GetAsyncKeyState(int vKey);]]
function getkeystate(key)
ffi.C.GetAsyncKeyState(key)
while ffi.C.GetAsyncKeyState(key) == 0 do end -- ждать пока не нажата клавиша
while ffi.C.GetAsyncKeyState(key) ~= 0 do end -- ждать пока клавиша нажата
end
getkeystate(32) -- 32 - код клавиши пробел
return "--> Первый поток"
end
--Тело второго потока
function test2(x)
return x
end
print ("Нажми пробел")
--Запускаем первый поток
local a1 = lanes.gen( "*", test1 )()
--Запускаем второй поток
local a2 = lanes.gen( "*", test2 )("--> Второй поток")
print (a1[1], "||" , a2[1])
Может кто подскажет есть какие-то другие варианты?
Может кто-то с подобным "копался" )