0

私は私のお気に入りのゲームの1つでレベル形式を学習しようとしていますが、これはほとんど完全に文書化されていません。基本的に、レベル形式を説明する唯一のドキュメントは、などのことを言うだけFirst 12 bytes: header
4 following bytes: number of materials
x next bytes: array of materialsです

私はヘックスに非常に不慣れで、彼らが何を言っているのか完全には理解していません。ただし、レベルエディタがあり、ソースはGoogleコードで無料で入手できます。これをVisualStudioに追加し、レベルエディターがファイルを開く方法を読んでレベル形式を学習しようと考えていました。

しかし、別の問題として、私はc ++を知りません(Pythonを知っています)。これは、コードのどの部分がバイトを読み取っているかを見つけることができない可能性があることを意味します。

私が探しているのは、実行時にコードのフローをたどることができるものです。基本的に、すべての行にブレークポイントを設定し、ファイルの内容を読み取るときにコードの特定の部分が実行されていることを表示するのと同じように機能します。ただし、明らかにすべての行にブレークポイントを設定するのは非常に面倒で時間がかかります。エディターでファイルを開いたときに実行されているコードを単純に表示するものを探しています。

誰かが私に何ができるか知っていますか?ありがとう。

4

2 に答える 2

3

あるステートメントから次のステートメントにステップする機能を探しています。私が知っているすべてのデバッガーには、そのような機能があります。対象領域の先頭に単一のブレークポイントを設定することから始め、そこからコードを「ステップ」実行します。

たとえば、Visual C ++ 2010では、キーF10が1つのステップを実行します。F11を使用して、次のステートメント(メソッド呼び出しなど)に「ステップイン」することもできます。

あなたの場合、レベルファイルの読み取りを開始する場所にブレークポイントを設定し、そこから続行します。ファイルが読み取られる場所を見つけることも、コードの明確さによっては難しい問題になる可能性があります。しかし、それがうまく書かれたコードであれば、名前に「read」または「load」などを含むメソッドがあるはずです-あなたはそれを理解するでしょう!

ただし、何が起こっているかを追跡できるようにするには、少なくともいくつかの基本的なC++構文を知っている必要があるかもしれません。

また、HowToのデバッグ(例:これ)を読むことをお勧めします。

于 2012-09-07T09:25:03.587 に答える
1

非常にあいまいなドキュメントは、レベル形式の仕様にすぎません。ほとんどの場合、必要なのは仕様だけです。また、ファイルの読み取りに関する少しの追加の経験も必要です。

ファイルを読むとき、あなたはいくつかのことについて心配しなければなりません。

1)バイト単位(8ビット)で読み取る場合、順序は変更されません。

2)一度に32ビットを読み取る場合、マシンのエンディアンに応じてバイト順序が変わる可能性があります。

(たとえば、endiannesが変更されると、0x12345678は0x78563412になります)

3Dモデルの読み込みに役立つ非常に古いチュートリアルがあり、ファイルの操作を開始するのに役立ちました。

http://www.spacesimulator.net/wiki/index.php?title=Tutorials:3ds_Loader

これは、(元のドキュメントのように)仕様の一部があり、仕様から始めてローダーを作成する方法を示しているため、便利です。必要なのはそれだけです。これはCですが、この場合はC++と大きな違いはありません。

わかりやすくするために、関連するファイルローダーを使用した他の単純なファイル形式の仕様が必要な場合は、libktxおよびktxの仕様を確認することもできます。

http://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/

私が正しく覚えていれば、非公式のC ++ KTXローダーもあり、CではなくC++oopコードを記述したい場合に見ることができます。

于 2012-09-07T09:43:52.477 に答える