3
私はluajavaによってゲームを開発しています。ルアコルーチンでJava関数を呼び出すと、「無効なメソッド呼び出しです。そのようなメソッドはありません」というエラーが表示されます。 はここでここでは、コードルアコルーチンでJava関数を呼び出す方法は?
package com.soyomaker;
import org.keplerproject.luajava.LuaException;
import org.keplerproject.luajava.LuaState;
import org.keplerproject.luajava.LuaStateFactory;
public class Main {
public static void main(String[] args) {
LuaState luaState = LuaStateFactory.newLuaState();
luaState.openLibs();
try {
luaState.pushObjectValue(new People());
luaState.setGlobal("people");
} catch (LuaException e) {
e.printStackTrace();
}
luaState.LdoFile("res/script.lua");
}
}
//=============================================================================
package com.soyomaker;
public class People {
public void sayHello(String name) {
System.out.println("hello " + name);
}
}
//=============================================================================
print(people)
print(people.sayHello)
people:sayHello("Bill")
function run()
print("========run========")
print(people)
print(people.sayHello)
people:sayHello("Jobs")
end
local co=coroutine.create(run)
print(coroutine.resume(co))
が結果です:
hello Bill
userdata: 040256B8
<b>function: 040252C0</b>
========run========
userdata: 040256B8
<b>function: 04026650</b>
false Invalid method call. No such method.
は私が予期せず、二回 "people.sayHello" を印刷し、私は別の結果を得ます。
どうすればいいですか?事前にありがとう!
この質問に答えたことがありますか?今、同じことに走っている。 :( – SomeCallMeTim