問題タブ [lua-c++-connection]

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 投票する
3 に答える
3481 参照

c++ - LuaとC++:職務の分離

C ++ / Luaゲームコードを整理する方法を分類し、それらの義務を分離するのを手伝ってください。最も便利な方法は何ですか、どれを使用しますか?

たとえば、Luaは、C ++オブジェクトの初期化のみ、またはゲームループの反復ごとに使用できます。ゲームロジックのみ、またはグラフィックスにも使用できます。一部のゲームエンジンは、スクリプトからすべてのサブシステムを完全に制御します。私はこのアプローチが本当に好きではありません(分離はまったくありません)。

すべてのゲームオブジェクト(npc、場所)をC ++オブジェクトなしのLuaテーブルとして実装するのは良い考えですか?または、それらをミラーリングする方が良いですか(C ++オブジェクトを制御するためのLuaテーブル)?または、他の何か?

ありがとうございました。

編集。私の分類:LuaとC ++:職務の分離

トピックの続き:Lua、ゲームの状態、ゲームのループ

0 投票する
9 に答える
12175 参照

c++ - Lua、ゲーム ステート、ゲーム ループ

  1. 各ゲーム ループの繰り返しで main.lua スクリプトを呼び出す - 良い設計か悪い設計か? パフォーマンスに(相対的に)どのように影響しますか?

  2. からゲームの状態を維持ます。C++ ホスト プログラムまたはb。Lua スクリプトまたはcから。両方から同期しますか?

(トピックに関する前の質問: Lua と C++: 職務の分離)

(すべての回答に投票します。最良の回答が受け入れられます。)

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

c++ - LuaテーブルにC関数を登録する

LuaにC関数を登録する方法はありますが、グローバルコンテキストではなく、テーブルフィールドとして登録しますか?

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

c++ - 文字列のベクトルを返す最も単純な lua 関数

文字列の配列を返し、それらを c++ ベクトルとして格納する lua 関数を呼び出す、非常に単純な c++ 関数が必要です。関数は次のようになります。

(lua ソース コードには、文字列の配列を返す lua 関数が含まれています)。

何か案は?

ありがとう!

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

c++ - luaL_dostring はスタックに何も置かないのですか?

Lua と C++ のインターフェースの基本を学ぼうとしていますが、問題が発生しました。文字列を返す関数を呼び出して、C++ 側で文字列を操作したいのですが、luaL_dostring が Lua スタックに何も置かないようです。

簡単なテストでさえ、正しく動作していないようです:

出力:

何か案は?

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

c++ - Lua ユーザーデータの保存と返却

私はC++で次のクラスを持っています

そして lua バインディング コードの一部:

そして、これらをLuaでユーザーデータとしてラップしたいので、次のようなことができます:

のアドレスを印刷するbb2、2 つの固有のアドレスが得られますlua_newuserdata。しかし、理想的には、同じメモリブロックを指しているため、同じユーザーデータを返したいと思います。どうすればこれを行うことができますか?

Lua にメモリを「担当」してもらいたいので、ガベージ コレクションで適切に削除されます。したがって、軽いユーザーデータが可能かどうかはわかりません。

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

lua - C-API という名前の Lua テーブルを作成する方法

次のように C-API から Lua テーブルを作成する方法:

テーブル名を設定するには?テーブルを作成して値を入れる方法しか知りませんが、テーブルの名前を設定する方法がわかりません。

名前のないテーブルを作成するコード: