2

私はluaを初めて使用しますが、luaを使用してゲームデータ(モンスターの説明、呪文など)を保存するのは効率的ですか?

私の問題は、毎秒モンスターオブジェクトを作成しようとすると、luaファイルを実行してデータを繰り返し取得する必要があることです。これは、効率的ではないと思います。

luaを使用する前に、XMLを使用してデータを保存します。ゲームプレイの開始時に、「monster.xml」ファイルを1回読み取り、それをメモリに保持します。モンスターを作成する必要があるたびに、それを参照するだけです。このXMLアプローチはluaアプローチよりも効率的ですか?または他のより良い解決策はありますか?

ありがとう !

4

3 に答える 3

5

Lua ファイルを 1 回だけ読み込んで、データをメモリに保存し、必要なときにいつでもコピーしてみませんか?

または、データ (の一部) が変更されない場合は、コピーする必要さえありません。そのタイプのすべてのモンスターが同じデータのコピーを参照するようにします。

于 2012-12-30T12:27:54.020 に答える
3

経由で Lua ファイルをロードするlua_load()と、コンパイルされたチャンクが Lua 関数として取得されます。

したがって、すべてのファイルの読み取りと解析は一度だけ行われます。この関数を実行し、Lua の状態から結果を読み取るにはコストがかかりますが、XML 構造からデータを取得するよりも高速になるはずです。

于 2013-01-02T15:50:20.050 に答える
3
  1. X をディスクからロードし、必要に応じてメモリから読み取ります。
  2. データが必要になるたびに X をディスクからロードします。

#1 は、X (XML、Lua) の任意の値に対して #2 よりも高速です。

リンゴとオレンジの比較である #1(X=XML) と #2(X=Lua) を比較しています。

Lua をデータ ストレージ フォーマットとして使用したい場合、何らかの理由 (より簡潔、より柔軟など) で、同じ目的で XML を使用するのと同じくらい速くできない理由はありません。読み込まれたデータは同じです。

データをロードする手段として(ビヘイビアではなく) Lua を使用していると仮定すると、データを構造化されたデータ型に引き出す必要があります。そのデータのソース(XML、Lua など) は、データが丸呑みされてしまえば、プログラムにとってそれほど重要ではありません。

于 2013-01-02T18:14:11.240 に答える