2013-08-13 8 views
1

Tiled Map editor을 사용하여 만든 등각 투영지도가 있습니다. 현재 타일에는 기본 레이어 (즉, 배경) 만 있습니다.Cocos2d-iphone에서 아이소 메트릭지도에 타일을 동적으로 추가하는 방법

동적으로이 레이어 위에 타일을 추가하고 싶습니다. 타일이 효과적으로 타일의 일부가되도록 타일 위치 (1,1)에서 말하고 싶습니다.

지도의 위치를 ​​변경할 때 (예 : 스크롤하는 동안) 새로 추가 된 타일이지도의 일부처럼 작동하고지도가있는 타일 위치로 이동하기를 원합니다.

CCTMXLayer 클래스 -(void) addChild: (CCNode*)node z:(NSInteger)z tag:(NSInteger)tag;을 사용해 보았지만 오류가 발생합니다. 나는 2 라인을 꽤 이해하지 못한다.

addchild : z : tag : CCTMXLayer에서 지원되지 않습니다. 에서 :/tileAt 대신 setTileGID의

은 또한, 나는 타일의 개체 레이어를 추가하고 객체 속성 접근 시도 -는 x에서 변환에 다음

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

내가 어려움에 직면하고 있습니다를, y 값을 화면 좌표에 적용합니다. 또는 x, y에서 tilePos를 수정하십시오. 여기에 긴급한 도움이 필요해.

사이드 노트 - Kobold Kit에는 "런타임시 모든 타일 맵 애스 팩트를 만들고 수정하는"기능이 있습니다. 이게 도움이 될까요?

답변

0

그런 다음 다음 코드를 사용합니다 (타일지도 편집기의 좌표 (X, Y)를) 타일 (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];