我正在iPhone上的射擊遊戲,我需要爲LUA腳本水平,敵人,等 所以我寫了一個腳本,子彈像這樣:的Lua:要求()不工作在iPhone上
-- 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);
...
}
這將進入「否則,如果」分支,這意味着一些錯誤發生,但我不知道如何閱讀錯誤信息。
如果我註釋掉「require」這一行,敵人「level1_D2」就會像打算一樣工作而不會彈出子彈。我也嘗試將整個circular_bullet.lua複製到level1_D2.lua中,並且它工作正常,所以問題必須是require語句。
這兩個文件位於包的根目錄下。 (我不知道如何使它們在不同的目錄中,因此我發現Diner Dash將其腳本保存在不同的目錄中。) 但是,這兩個文件不在我的Xcode項目中的同一組中。我試圖把它們放在同一組中,但沒有發生任何事。
任何人都知道問題是什麼?非常感謝!
它有可能試圖用fopen在錯誤的地方打開文件。看到這裏 - http://stackoverflow.com/questions/318341/how-to-fopen-on-the-iphone – 2010-09-28 17:24:35
啊,我忘了注意,但我嘗試使用完整的路徑,沒有任何改變:( – Chengyang 2010-09-29 02:27:55