2012-10-11 17 views
5

मैं चौड़ाई और ऊंचाई के आकार को डबल आकार और ऑब्जेक्ट की स्थिति में बदलकर रेटिना डिस्प्ले के लिए टाइल मानचित्र को परिवर्तित करने की मार्गदर्शिका का पालन करता हूं। लेकिन सामान्य प्रदर्शन पर परिणाम रेटिना प्रदर्शन सामान्य प्रदर्शन के समान नहीं है सही है, लेकिन रेटिना प्रदर्शन सही नहीं हैजब मैं रेटिना डिस्प्ले में कनवर्ट करता हूं तो टाइल मैप की गलत स्थिति

यह गैर-रेटिना टाइल नक्शा enter image description here

है और यह रेटिना टाइल नक्शा enter image description here

है

मैं रेटिना .tmx फ़ाइल

में कुछ भी गलत है?

उत्तर

6

मुझे कोकोस 2 डी टाइल मानचित्र के साथ भी एक ही समस्या देखी गई और अंततः 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

हाँ इस फ़ंक्शन का उपयोग किया tilemap coords कुछ स्थानों पर जहां Cocos2d coords स्वचालित रूप से परिवर्तित नहीं करता है में से एक है। – LearnCocos2D

+0

ये कोड क्या हैं। जहां मुझे इन कोडों को रखना चाहिए। ऑब्जेक्ट परत में ऑब्जेक्ट्स की स्थिति प्राप्त करने के लिए – aratn0n

+0

@ aratn0n। – Guru

संबंधित मुद्दे