問題タブ [luabridge]

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.

0 投票する
0 に答える
379 参照

luabridge - LuaBridge を使用して C++ オブジェクトを lua スクリプトに転送する方法

次のようなコードで、lua スクリプト言語をシリアライゼーション ライブラリと統合したいと考えています。

残念ながらLuaBridgeはほぼ完璧に機能し、「クラスプロパティ」オブジェクトのコピーを作成しているため、スクリプトで行うすべての変更は次のとおりです。

私の C++ ライフタイム オブジェクトを変更しないでください。

私の質問は、変更されたデータを自分の C++ オブジェクトにコピーするように LuaBridge に強制するにはどうすればよいですか?

0 投票する
3 に答える
872 参照

c++ - Luabridge を使用して sf::Event を Lua に公開する良い方法はありますか?

LuaBridge のreadmeによると、LuaBridge は「列挙定数」をサポートしていませんenumssf::Eventほぼ完全なのでenums、クラスを公開する方法はありますか? 現在、私が思いつくことができる他の唯一の解決策は、C++ でキーの押下を検出し、イベントを説明する文字列を Lua に送信することです。明らかに、最新のキーボードには約 100 個以上のキーがあり、これにより大規模で醜い just if ステートメントのセグメントが生成されます。

SFML を使用したことがない場合: sf::Event クラスのソース コードへのリンク


アップデート:

私の質問で概説されている関数を作成しようとした後、C++ では複数の文字列を返すことができないため、ほとんどのイベントが無視されるため、とにかく機能しないことがわかりました。

ソースの例 (動作しません):


更新更新:

この質問にはコメントも回答もなかったので、他のライブラリを除外しないことにしました。なので、列挙型をサポートするC++ライブラリがあれば、それを受け入れます

0 投票する
1 に答える
564 参照

c++ - Luabridge の「addProperty」のエラー

Foo単純なクラスを公開するための非常に単純なソース コードがいくつかあります。

main.cpp:

残念ながら、次のエラーが表示されます。

何が問題なのかわかりませんが、使用する必要がありますaddProperty。そうしないと、コードが正しく見えません

0 投票する
1 に答える
309 参照

c++ - Lua で sf::Text オブジェクトを描画するときのセグメンテーション違反

LuaBridge を使用して多くの SFML クラスを Lua に公開しました。ほとんどのクラスをテストしましたが、うまく機能します (sf::RectangleShapeなどsf::Texture)。ただし、 と に問題がsf::Fontありsf::Textます。まず、公開する C++ コードsf::Fontsf::Text:

を使用する lua スクリプトを作成するTextFont、セグメンテーション エラーが発生することがあります。これは、フォントを設定した場合、Text オブジェクトを描画するときにのみエラーが発生することを意味します。

脚本:

アップデート:

他のSFMLクラスでテストした後、これはsf::Textureand sf::Sprite/ sf::RectangleShape/sf::CircleShapeなどの問題ではないようです。これはsf::Font、参照が削除されているのではなく、問題であることを示しています

LuaBridge と SFML に関する関連質問

0 投票する
2 に答える
659 参照

c++ - LuaBridge getGlobal は常に nil を返します

1 週間前に LuaBridge で最初の小さなテストを行ったところ、スクリプトから int を取得することができました。

今、このコードを削除し、ゲーム エンジンに Lua スクリプトを含めようとしましたが、機能しなくなりました。私はこれで基本的なコードに戻ろうとしました:

このスクリプトで

そして、それは私に与えます:

スクリプトから文字列または関数を取得しようとしたときも同じで、これで何が間違っているのかわかりません。

あなたの答えをありがとう:)

0 投票する
1 に答える
625 参照

c++ - LuaユーザーデータをC++クラスオブジェクトに変換するには?

私はこのLuaコードを持っています:

Person(LuaBridge を使用して登録された C++ クラス) を表すユーザーデータを返します。そのため、lua_pcall を使用してこの関数を呼び出すと、lua スタックの最後の要素がそのユーザーデータになります。私の質問は、このユーザーデータを -1 で C++ の Person に変換 (キャスト) する方法です。

私はこれを試しましたが、プログラムを終了するだけです:

私はそれが理にかなっていることを願っています:)

0 投票する
1 に答える
906 参照

c++ - 条件付きで C++ から Lua 関数を呼び出す

Lua を使用してスクリプトを作成し、C++ に埋め込みます。このプロセスではLuaBridgeを使用します。

私の Lua スクリプトには、C++ で使用するために最初に取得する必要がある変数がいくつかあります。さらに、非常に単純な関数があります。

ただし、この関数は特定の条件下でのみ呼び出されますつまり、一連の複雑な計算の後でC++ コードから "true" が得られた場合にのみ呼び出されます。

私のLuaとLuaBridgeの知識によって制限されていますが、私が知っていることは次のとおりです。

を使用して、Lua スクリプトから変数と関数を読み取ることができます

しかし今、変数を読み取って最初に使用し、次にメンバー関数で使用する必要があります

別の C++ クラスで定義

条件が確定され、条件が「真」の場合、この run() 関数が呼び出されます。この run() 関数を C++ メンバー関数で直接呼び出すのが最善です。

さらなる処理の制限のため。

したがって、これが可能かどうか疑問に思っていました:

を使用して関数を読み取る

最初に他の変数と一緒にこの run() 関数を C++ コードのどこかに (おそらくクラス メンバー関数として) 「保存」します。クラス。これは可能でしょうか?可能であれば、どのように行うのですか?または他の良いアイデアはありますか?

0 投票する
3 に答える
728 参照

c++ - LuaBridge で演算子を使用する方法

ベクトルクラスをエクスポートしようとしています

しかし、他の3つの演算子を試してみると、複数のオーバーロードがあります。使用したいものをどのように指定できますか?これは可能ですか?