1

Tiled で TMX ベースのマップを作成した後、ゲームの進行に合わせてタイルの特定のプロパティをプログラムで変更したいと考えています。

これは私が試したコードですが、うまくいきません。しかし、私が達成しようとしていることのロジックを示すために、ここに含めます...

NSDictionary *currentProperties = [_tileMap propertiesForGID:tileToMarkFalling];
[currentProperties[@"Falling"] setString:@"True"];
[_tileMap propertiesForGID:tileToMarkFalling] = currentProperties;

ここでスローされるエラーは"Expression is not assignable".

これらのプロパティをプログラムで設定するにはどうすればよいですか、ありがとう。

4

1 に答える 1

1

最後の行は適切な構文ではありません。セレクター/メッセージ/関数呼び出し (の結果) に値を割り当てることはできません。実際、cocos2d は TMX プロパティを不変のディクショナリとして保存しますが、残念ながら変更することはできません。プロパティを取得し、変更可能なディクショナリまたはその他の方法で独自のクラスに格納する必要があります。

ディクショナリは、タイルのロジック情報を格納する理想的な方法ではないことに注意してください。各タイルのプロパティ dict で「落下」をチェックし、場合によってはフレームごとに他の値をチェックすると、ディクショナリ ルックアップのオーバーヘッドによってパフォーマンスが低下します。タイル。

于 2014-05-13T07:08:46.767 に答える