2012-10-11 2 views
5

網膜ディスプレイのタイルマップをダブルサイズとオブジェクトの位置に変更することでタイルマップを変換するガイドに従います。 しかし通常表示に結果が網膜表示通常表示と同じではないが正しいが、網膜ディスプレイが正しくない網膜ディスプレイに変換するとタイルマップの位置が間違っています

これはタイルマップ enter image description here

非網膜であり、これは網膜タイルマップ enter image description here

あります

網膜の.tmxファイルに-hdサフィックスを追加する

何か間違っていますか?

答えて

6

私はまた、cocos2Dタイルマップで同じ問題を観察し、最後にCC_CONTENT_SCALE_FACTORを分割して解決しました。網膜モードでは2.0になります。

CCTMXObjectGroup *objects = [tileMap objectGroupNamed:NN_TILE_MAP_OBJECT_LAYER]; 

CGSize s = [[CCDirector sharedDirector] winSize]; 

NSMutableDictionary *newtonPos = [objects objectNamed:NN_NEWTON_POS];   

if(newtonPos) 
{ 
    float x = ([[newtonPos valueForKey:@"x"] floatValue])/CC_CONTENT_SCALE_FACTOR(); 
    float y = [[newtonPos valueForKey:@"y"] floatValue]/CC_CONTENT_SCALE_FACTOR(); 

    MyGameScreen *p = (MyGameScreen*)self.parentLayer; 
    p.gameActor.position = ccp(x, y); 
} 

私は和音を取得するには、この機能を使用// ...

- (CGPoint)getTileCoordForPosition:(CGPoint)position 
{ 
    int maxTileCol = self.mapSize.height; 

    int x = ((position.x-self.position.x)/TILE_SIZE); 
    int y = maxTileCol - (((position.y)-self.position.y)/TILE_SIZE); 

    if(x >= TILE_IN_ROW) 
     x = TILE_IN_ROW - 1; 

    if(y >= TILE_IN_COL) 
     y = TILE_IN_COL - 1; 

    return ccp(x, y); 

} 
+2

うん、タイルマップCOORDSはcocos2dは自動的COORDSを変換していない数少ない場所の一つです。 – LearnCocos2D

+0

これらのコードは何ですか。私はこれらのコードを置くべきです。 – aratn0n

+0

@ aratn0n、オブジェクトレイヤ内のオブジェクトの位置を取得します。 – Guru

関連する問題