問題タブ [luaplus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - LuaPlus は C++ からテーブルを操作します
このガイドでは、テーブルにモンスターを追加し、テーブルからモンスターの健康を減らす関数が作成されます。
lua スクリプトから次のように 2 つの関数を簡単に使用できます。
しかし、これらの関数を C++ 側から呼び出すにはどうすればよいでしょうか?
私は元のものを意味します: ObjectMgr::CreateObejct()
、ObjectMgr::GetObjectByIndex()
およびMonster::Hurt()
これを理解するのに 8 時間以上費やしています。しかし、何もうまくいきませんでした。:/
私の最善の試みはおそらくこれでした:
これにより、次のエラーが表示されます。
クラス "std::tr1::shared_ptr" にはメンバー "Hurt" がありません
c++ - LuaPlus:テーブルをスタックにプッシュする方法は?
Lua スクリプトによって呼び出されたときに (キー値) テーブルを返す関数が必要です。したがって、テーブルをスタックにプッシュする必要があります。
整数をスタックにプッシュする方法を知っています: state->PushInteger(10)
また、文字列やその他の数値に対してどのように機能するかも知っていますが、テーブルをスタックにプッシュする方法、さらにテーブルをスタックから作成する方法も知っています。 C++側?
http://wwhiz.com/LuaPlus/LuaPlus.htmlのサイトでは、通常、すべてが非常によく説明されています が、LuaPlus の仕組みを理解するのに非常に苦労しています。したがって、この場合、それは本当に役に立ちません。:(
誰かがここで私を助けてくれたら本当にうれしいです.私は文字通りこれを3日間やろうとしています.. :/
c++ - LuaPlus:関数がテーブルを返すようにする方法は?
Lua 側から呼び出されたときにテーブルを返す関数を C++ 側から作成して登録する方法を知りたいです。
私は多くのことを試しましたが、何もうまくいきませんでした。:/
(長いコードで申し訳ありません) Register() は「luaCFunction」スタイルの関数を想定しているため、たとえばこれは機能しません。
luaCFunction-function として設定しようとすると、クラッシュ (0x3) して次のように表示されます:
Assertion failed: 0, file C:\......\ luafunction.h , line 41
明確にするために:Lua側から、次のように呼び出し可能にしたかった:
編集: 印刷機能はhereから来ます。そして、基本的にこれが機能しない原因でした。Print は、テーブルではなく文字列のみを出力できます...上記の C++ コードは、1 を返すだけで正常に動作します。
これは私の LuaPlus バージョンに付属のドキュメントです: http://luaplus.funpic.de/
あなたが私を助けてくれることを本当に願っています..私はすでにそれが不可能だと考え始めています. :'(
編集: 「メンバーが存在しない」ため、 PushStack() を使用するとエラーが発生することを完全に忘れていました...
c++ - LuaPlus:パラメータと1つの戻り値で関数を登録しますか?
システムがよくわかりません。I を使用する.RegisterDirect("myFunc",myFunc)
と、パラメーターを受け取ることはできないが、値を返すことができる関数を登録できます。
I を使用する.Register("myFunc",myFunc)
と、パラメーターを受け取ることができる関数を登録できますが、値を返すことはできません。
私は文字通りこの問題に何日も費やしましたが、それを理解することはできません. 誰かがこれを見てくれたら、本当に感謝します。
ここにドキュメントがあります。Register
との簡単な例を次に示しますRegisterDirect
。Print 関数が常に文字列 "hello" を返すようにしたいとしましょう。どうすればいいですか?
Afaik スタックに値をプッシュし、スタックに何かがあることを示すために 1 を返す必要があります。しかし、それはうまくいかないようでした。これを関数に追加して、数値4を返そうとしました:
ここで私を助けてくれることを本当に願っています。
c++ - LuaPlus を使用しているときに関数で LuaObject を返せないのはなぜですか?
LuaPlus を使用する Game Coding Complete 4th Edition の例に従っています。
この例と、私が自分で試したコードでは、LuaObject の戻り値がある場合、関数を lua に登録できません。
と
そして.hで
戻り値をLuaObjectに設定すると、常にエラーが発生します。コードで別の関数を使用して LuaObject を返そうとしたときに、これを行うことができなかったのはそのためです。