アニメーションループで使用されるコールバック関数を持つlua「アニメーション変数」があります。
local av = AnimationVariable(ticker.Position.Y)
...
av:addCallback( ** animation function goes here **)
詳細をスキップして、このaddCallback関数はC++で次のように定義されています。
void LuaUIAnimationVariable::addCallback(luabind::object callback);
アニメーション変数が更新されると、コールバックはそのように実行されます(1つの引数で関数を呼び出します)。
luabind::call_function<void>(boost::ref(callback), newValue);
私の質問は次のとおりです。addCallbackでメンバー関数を使用するにはどうすればよいですか?関数があるとするとTicker:animate(ypos)
、TickerインスタンスでaddCallbackを使用addCallBack(ticker:animate)
してもコンパイルされず、機能addCallBack(ticker.animate)
しません。luaのメンバー関数には暗黙の「自己」最初のパラメーターがあることを理解しています。
解決策はありますか、それともグローバル関数を使用する必要がありますか?