Я работаю над игрой-стрелялкой на 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» будет работать, как задумано, без стрельбы пулей. Я также попытался скопировать весь файл circle_bullet.lua в level1_D2.lua, и это сработало, поэтому проблема должна заключаться в заявлении require.
Эти два файла находятся в корневом каталоге пакета. (Я не знаю, как разместить их в другом каталоге, поэтому я обнаружил, что Diner Dash хранит свои скрипты в другом каталоге.) Однако эти два файла не находятся в одной группе в моем проекте Xcode. Я попытался объединить их в одну группу, но ничего не вышло.
Кто-нибудь знает, в чем проблема? Большое спасибо!