LuaJ (или любые другие интерпретаторы Java LUA) - Можете ли вы вызвать скрипт LUA из Java, не дожидаясь его возврата?
Я писал движок RPG для Android и дошел до того, что думаю, что мне нужно добавить язык сценариев для моего Battle Engine. Просто слишком сложно разобраться с XML-конфигурацией, управляющей игровым контентом, как я делал ранее. Похоже, что LUA - это язык сценариев, который выбирает сообщество разработчиков игр, поэтому я провел небольшое исследование. Поскольку Engine написан на Java, я думаю об использовании LuaJ в качестве моего интерпретатора LUA, так как я нашел несколько старых потоков, которые указывают, что это, вероятно, лучший интерпретатор Java LUA, но если у кого-то есть более актуальное мнение о лучшем интерпретаторе, я У меня все уши.
В любом случае мне нужно иметь возможность вызывать LUA-скрипт из Java и продолжать выполнение игрового потока, не дожидаясь его возвращения. Возможно ли это с LuaJ или любым другим популярным интерпретатором на основе Java? Я знаю, что всегда мог бы поместить вызов сценария в его собственный поток, но потенциально я мог бы иметь много активных сценариев одновременно, и это пустая трата, так как в любом случае мне не нужно возвращаемое значение.
1 ответ
Если вы хотите, чтобы что-то работало параллельно с вашим игровым потоком, вы должны поместить его в свой собственный поток.
Вы можете использовать своего рода Executor ( http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Executor.html, например ThreadPoolExecutor), если вы не хотите запускать поток за каждый звонок.