2011-07-08 3 views
5

私は今ではたくさんのことを知りましたが、私が見つけたのはC++のLuaの "Hello World"の例です。Lua、C++、lua_open()よりも深いところからの紹介はありますか?

状況:ゲーム、大きなゲーム。現在、C++(オブジェクト指向およびすべて)でハードコードされているゲーム内のコンソールは、ユーザーがコンソールに入力したコマンドをチェックするif-else-if-else ...ブロックが多数あります。各コマンドはゲームの他のクラスのメンバーを変更することができます(コマンド "speed 5"のようにがclass Carに変更され、Car::setSpeed(5)が呼び出されます)。変数を変更するだけでなく、Luaによって実行されるべき最終的な結果だけがC++コード(コンソール出力+正しいクラスの変更された変数)に戻されるだけでなく、「バックグラウンドで」実行するコマンドもあります。

ここで/ how/withこのコンソールコマンドの機能の背後にあるコードをLuaに変換するにはどうすればよいですか?このように、コンソールに「スピード5」を入力すると、LuaはCar::setSpeed(5)を呼び出して、LuaはC++コンソールに戻ります。 コマンドの背後にあるコードをハードコードするのではなく、Luaで書かれていなければなりませんが、ゲームの残りの部分はC++(私のクラスやメンバー、コンソールフレームワークのような)にとどまるべきです。

良いチュートリアルですか?どんなヒントが始まるか?共有するいくつかの経験?私は唯一のスクリプトで遊んするためにLUAを使用して、事前

答えて

6

まだ入手していない場合はProgramming in Luaのコピーを入手してください。 Cとのinteropを記述するセクション(したがってC++)は、ほぼ100ページで、「こんにちはの世界」よりもはるかにです。

本には特定のC++バインディング情報はありませんが、C++コンパイラにRTTI機能がある場合は参考になります。これがLuaをC++ Builderと統合する方法です。

+1

[初版](http://www.lua.org/pil/)もオンラインで読むことができます。 –

0

おかげで私はあなたのヒントの多くを与えることはできません。
しかし、私はluabindがプレーンなluaのようにC++ではるかに有用であることを発見しました。たぶんそこのチュートリアルもあなたを助けることができます。

関連する問題