2011-08-29 60 views
0

我最近從使用單獨的資源文件切換到使用紋理圖集。我嘗試用[CCSprite spriteWithSpriteFrameName]替換幾個[CCSprite spriteWithFile]。除了一件事情,這工作正常。 CCSprite的紋理尺寸不正確。這裏是我的代碼:CCSpriteFrameCache和sprite紋理的問題

CGSize screenSize = [[CCDirector sharedDirector]winSize]; 
CCSprite * leftArrow = [CCSprite spriteWithSpriteFrameName:@"smallLeftArrow.png"]; 
CGSize arrowSize = [leftArrow texture].contentSizeInPixels; 
CCSprite * selectedLA = [CCSprite spriteWithSpriteFrameName:@"smallLeftArrow.png"]; 
selectedLA.opacity = 100; 
CCMenuItem * leftArrowItem = [CCMenuItemSprite itemFromNormalSprite:leftArrow selectedSprite:selectedLA target:[HelloWorldLayer sharedHelloWorldLayer] selector:@selector(doLeft)]; 
leftArrowItem.position = ccp(- arrowSize.width, arrowSize.height); 
CCLOG(@"arrow.width = %f arrow.height %f",arrowSize.width, arrowSize.height); 

這是調試器輸出:

2011-08-29 18:27:04.239 Zero Gravity Combat[454:307] arrow.width = 1024.000000 arrow.height 1024.000000 

整個紋理地圖的尺寸​​爲1024 X 1024。我使用貼圖打包機創建紋理圖集。有沒有辦法解決這個問題,或者我需要手動創建紋理來確定尺寸?

回答

0

你顯然想要得到箭頭精靈的大小。那很簡單:leftArrow.contentSize

你所做的是獲得尺寸爲1024x1024的使用紋理的大小。紋理的大小並不總是與精靈的大小相同。

+0

謝謝。這解決了它。 –