0

たとえば、文字列があったとします

hunger > 80 then findFood();

また

distanceTo sun < 30 then moveAwayFrom(sun);

それは私が望むものの正確な構文ではありませんが、ゲーム内のエンティティにそれを渡すことができ、基本的にそれに従うことができるようにする簡単な方法を知っている人はいますか? 現時点で頭に浮かぶ唯一のことは、指定された文字列を解析する if ステートメントの巨大なブロックを作成することですが、それは非常に効率が悪いと感じます。

ここで本当に単純なことを見落としているかどうかを確認するために、セカンドオピニオンが欲しいです:/

4

1 に答える 1

3

簡単な作業ではありません!あなたが基本的に言っていることは、言語を作成する必要があるということです。

この言語は、コマンドを解析して生成するすべての可能なコマンドを記述します。

今、あなたは「言語を書いたことがない!」と思っているかもしれません。そこでANTLRの出番です。これにより、言語の文法を記述し、コマンドをデコードするために必要なパーサー/レクサーを生成できます。ANTLRWorks と呼ばれるANTLERを操作するための IDE を入手できます。入門チュートリアルを参照してください。ウィキ ページに関するトラブルの「呪い」を本当に乗り越えて、ここに飛び込む必要があります。

その過程で、後でデコードできるように、コマンドをエンコードするためのより簡単で効率的な方法に気付くでしょう。Python、JavaScript、Lua など、コマンドのエンコード/デコードに使用するスクリプト言語を埋め込むことも考えられます。Lua がゲームで使用されているのを見たことがあります。Lua がゲームで人気を博している理由については、こちらの声明を参照してください。幸運を!

于 2013-10-27T13:00:14.313 に答える