2012-10-11 33 views
5

Tôi làm theo hướng dẫn chuyển bản đồ gạch cho màn hình võng mạc bằng cách thay đổi kích thước chiều rộng và chiều cao thành kích thước gấp đôi và vị trí của đối tượng. nhưng kết quả trên màn hình bình thường là không giống như hiển thị võng mạc hiển thị bình thường là đúng nhưng hiển thị võng mạc là không đúngvị trí sai của bản đồ lát gạch khi tôi chuyển đổi sang màn hình hiển thị võng mạc

Đây là phi võng mạc đồ ngói enter image description here

và đây là võng mạc đồ ngói enter image description here

Tôi cũng thêm hậu tố -hđ vào tệp .tmx võng mạc

Có điều gì không ổn?

Trả lời

6

Tôi cũng đã quan sát cùng một vấn đề với bản đồ khối hình ảnh cocos2D và cuối cùng được giải quyết bằng cách chia CC_CONTENT_SCALE_FACTOR. Trong chế độ retina nó cho 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); 
} 

// tôi đã sử dụng chức năng này để có được hợp âm ..

- (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

yup, tilemap coords là một trong số ít những nơi cocos2d không chuyển đổi coords tự động. – LearnCocos2D

+0

các mã này là gì. nơi tôi nên đặt những mã này. – aratn0n

+0

@ aratn0n, để lấy vị trí của các đối tượng trong lớp đối tượng. – Guru

Các vấn đề liên quan