2

ゲーム内で *.txt レベルのファイルをどこにどのように保存すればよいかわかりません。

私がゲームに求めているのは、ゲームと共にインストールされるいくつかの「事前に作成された」レベルを利用できることと、ユーザーが独自のレベルを作成できることです。

だから私がしたことは、レベルと呼ばれる「コンテンツ」のビジュアルスタジオ内に新しいディレクトリを作成し、そこに「level1.txt」を置きました。しかし、レベル *.txt ファイルにアクセスできる唯一の方法は、フル パスを使用することです。ビルドされないため、ビジュアル スタジオ ソリューションにそれらを含めることはできません。

 "C:\My Documents\blahblabh....\levels\level1.txt"
  • これらの「事前に作成された」マップを、代わりに実行可能ファイルの近くのディレクトリに配置する必要がありますか? プロジェクトをコンパイルする前に、/bin ディレクトリ内にディレクトリを作成するにはどうすればよいですか?
  • ゲームと共にインストールされた「プリベイク済み」レベルをユーザーが削除できないようにするにはどうすればよいですか?
    (もうこれはいらない)
  • また、ユーザーカスタムで作成したレベルはどこに保存すればよいですか? これは StorageDevice で行う必要があると思います。しかしこれは、ゲームのデプロイ後にディレクトリを作成する方法に関する最初の質問と関連しています。

どんなポインタでも大歓迎です!ありがとうございました

編集: Re: カスタム コンテンツ プロセッサ。これは、必要以上に複雑に思えます。しかし、ゲームを xbox360 にもデプロイする必要があるのですが、ストレージ デバイスは機能しますか?

4

2 に答える 2

3

レベル ファイルを処理するカスタム コンテンツ プロセッサを作成することもできますが、それはおそらくやり過ぎです。これには、ユーザーが変更するのがより困難な形式にレベルを「コンパイル」できるという利点があります。

プロジェクトに(コンテンツではなく)追加して、プロパティで「出力ディレクトリにコピー - 常にコピー」を指定するだけです。プロジェクトに新しいサブフォルダーを作成し、そこに配置します。これがコピー先のディレクトリになります。

ユーザーがプリベークされたレベルを削除できないようにするため、Windows でそれを許可する方法はありません。ユーザーがいくつかの予想されるファイルを削除すると失敗する原因となるコードをチェックすることができます。

新しいディレクトリを作成するには、StorageDevice.OpenContainer().Path を使用してルート パスを取得し、Directory.CreateDirectory を使用します。これは PC と XBox で動作します。

于 2009-04-21T22:45:36.010 に答える
0

必ず、実行可能ファイルに「プリベイク済み」レベルを配置する必要があります。私はVSを使用していないので、その方法を教えることはできません。

ユーザーがレベルを削除するのを防ぐ方法は実際にはありませんが、ハッシュを使用してレベルが変更されていないことを確認できます (ユーザーは実行可能ファイルを変更することでこれを回避できますが、ほとんどのユーザーは停止するはずです)。

のように、ユーザーのフォルダにカスタム レベルを配置する必要がありますC:\Documents and Settings\User\MyGame\levels\level.txt

于 2009-04-21T22:44:48.570 に答える