1

私は Obj-c を理解しようとしている AS3 ゲーム開発者です。Obj-c でよくわからないことの 1 つは、ゲーム データの格納方法です。AS3では、このようなことをするだけです...

static var playerData:Object = {position:{startX:200, startY:200}};

このように簡単にアクセスできます...

var x1:Number = playerData['Position']['startX'];

または、複数行のデータがある場合は、次のようなこともできます...

myData["runOnFrame" + currentImageIndex]

オブジェクト runOnFrame1、runOnFrame2 などにアクセスできる場所。

昨日、上記の初期データ構造のセットアップ方法について質問したところ、いくつかの回答が返ってきました...

目的 c でこの AS3 データ構造を作成するにはどうすればよいですか?

しかし、可変ディクショナリを使用して基本的なゲーム データを設定する方法は、控えめに言っても、少し長く感じられます。

この質問のポイントに (最終的に) たどり着き、私が通常 AS3 でどのようにセットアップするかを考慮に入れると、Obj-c でゲーム データをセットアップするための最良の方法は何でしょうか? 私の選択肢は...

  1. 上記のリンクで変更可能な辞書アプローチを使用します

  2. 基本的な変数としてデータを保持するクラスを設定しますが、そのクラスの変数に動的にアクセスする方法がわかりません(runOnFrameの例のように)

  3. 配列を使用するかもしれませんが、ラベル付けが失われると思います。

それとももっと良い方法がありますか?XML? 私はこのプロジェクトに Parse を使用していますが、これは素晴らしいと思います。また、解析を使用してデータを直接保存する必要があるかどうか疑問に思っています。そのため、最初からすべてのデータがデータベースからアクセスされます。始めるべきこと。ゲームにハードコーディングしたいデータがあることはわかっているので、それを行う最善の方法についてのアイデアをいただければ幸いです。

4

1 に答える 1

1

可変辞書を項目ごとに初期化するのが長すぎるというあなたの観察は確かに正しいです。実際、Objective Cの次のバージョンでは、このタスクの構文が改善されます

NSDictionary *playerData = @{ @"position" : @{@"startX":@200, @"startY":@200} };

ただし、この優れた構文が利用可能になるまでにできることがあります。辞書を長い道のりで準備し、それをプロパティリストとしてファイルに保存し、長い初期化コードをplistの単一の読み取りに置き換えることができます。あなたの前の質問への答えは示唆します:

playerData = [NSMutableDictionary dictionaryWithContentsOfFile:@"playerdata.plst"];
于 2012-07-07T12:02:43.487 に答える