CCSpriteFrameCache和sprite纹理的问题

时间:2011-08-29 22:59:23

标签: ios cocos2d-iphone sprite

我最近从使用单独的资源文件切换到使用纹理图集。我尝试用[CCSprite spriteWithFile]替换了一些[CCSprite spriteWithSpriteFrameName]。除了一件事,这很好。 CCSprite的纹理尺寸不正确。这是我的代码:

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.我使用纹理打包器来创建纹理图集。有没有办法解决这个问题,还是我需要手动创建纹理来确定尺寸?

1 个答案:

答案 0 :(得分:0)

你显然想要获得箭头精灵的大小。这很简单:leftArrow.contentSize

你所做的就是获得所用纹理的大小,大小为1024x1024。纹理的大小并不总是与精灵的大小相同。