Я работаю над стрелялкой на iPhone, и мне нужен lua для написания сценариев уровней, врагов и т. Д. Поэтому я написал такой сценарий пули:
-- circular_bullet.lua
local time_between_bullets = 0.2;
...
function InitializeCircularBullet(objectName)
...
end
и сценарий врага:
-- level1_D2.lua
require("circular_bullet.lua");
...
Но оказалось, что вражеский сценарий не может "требовать" сценарий пули.Я попытался заглянуть в библиотеку lua, и обнаружил, что в loadlib.c:
static int ll_require (lua_State *L) {
...
if (lua_isfunction(L, -1)) /* did it find module? */
break; /* module loaded sucessfully */
else if (lua_isstring(L, -1)) /* loader returned error message? */
lua_concat(L, 2); /* accumulate it */
else
lua_pop(L, 1);
...
}
Это будет входить в ветку "else if", что означает, что произошла ошибка, но я понятия не имею, как читатьэто сообщение об ошибке.
Если я закомментирую строку «require», враг «level1_D2» будет работать как умышленно, не стреляя пулей.Я также попытался скопировать весь файл round_bullet.lua в level1_D2.lua, и это сработало, поэтому проблема должна заключаться в утверждении require.
Эти два файла находятся в корневом каталоге пакета.(Я не знаю, как сделать их в другом каталоге, поэтому я обнаружил, что Diner Dash хранит свои скрипты в другом каталоге.) Однако эти два файла не входят в одну группу в моем проекте XCode.Я пытался поместить их в одну группу, но ничего не произошло.
Кто-нибудь знает, в чем проблема?Большое спасибо!