1

Tiled Map editorを使用して作成したアイソメ マップがあります。現在のタイルにはベース レイヤー (つまり、背景) しかありません。

タイルが効果的にマップの一部になるように、タイル位置 (1,1) で、このレイヤーに動的にタイルを追加したいと考えています。

したがって、マップの位置を変更すると (スクロール中など)、新しく追加されたタイルがマップの一部のように動作し、マップと共にそのタイルの位置に移動する必要があります。

CCTMXLayer クラスを試しまし-(void) addChild: (CCNode*)node z:(NSInteger)z tag:(NSInteger)tag;たが、これを示すエラーがスローされます。2行目はよくわかりません。

addchild:z:tag: は CCTMXLayer ではサポートされていません。setTileGID:at:/tileAt: の代わりに:

また、タイルにオブジェクトレイヤーを追加して、オブジェクトのプロパティにアクセスしようとしました-

CCTMXObjectGroup* objectLayer=[tileMap objectGroupNamed:@"ObjectLayer"];
NSDictionary *properties = [objectLayer objectNamed:@"theObject"];
int x = [properties[@"x"] intValue];
int y = [properties[@"y"] intValue];

ここで、x、y 値から画面座標に変換する際に問題に直面しています。または、x、y から tilePos を修正します。ここで緊急の助けが必要です。

補足 - Kobold Kitには「実行時にすべてのタイルマップ アスペクトを作成および変更する」機能があることを読みました。これはここで役立ちますか?

4

1 に答える 1

0

tile (x,y) (Tiled Map エディターの座標では (x,y) ) と言うタイルを追加する場合は、次のコードを使用します -

myTileMap は CCTMXTiledMap オブジェクトへの参照です。

CCTMXLayer *layer=[myTileMap layerNamed:@"yourlayer"];
NSAssert(floorLayer !=nil, @"Ground layer not found!");    
CGPoint tileAddPosition = [layer positionAt: CGPointMake(x,y)];

//Create your CCNode or CCSprite or whatever...say object name is **tileToBeAdded**

tileToBeAdded.anchorPoint = CGPointZero;
tileToBeAdded.position = tileAddPosition;
[myTileMap addChild:addedTile z:1];
于 2013-08-21T07:14:00.427 に答える