我使用cocos2d。加载ccspriteframecache和ccspritebatchnode后,我制作了一个ccspritebatchnode。但是我需要精灵stage
的内容大小。
然而,它返回480.000000,而不是320.000000,这是整个屏幕的大小。我的图像要小很多。
[[CCSpriteFrameCache sharedSpriteFrameCache]addSpriteFramesWithFile:@"nBack.plist"];
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"nBack.png"]
CCSprite *stage = [CCSprite spriteWithSpriteFrameName:@"nBack0001.png"];
stage.position = ccp( winSize.width /2, winSize.height/2 );
CGSize stageSize = stage.contentSize;
NSLog( @"%f,%f", stageSize.width, stageSize.height );
[self addChild:stage z:1];
内容大小正确。您可能需要再次检查图像的尺寸。
我可以想象你在480 × 320的透明背景上画的图像。这将使图像大小保持在480x320,但用于创建纹理图集的工具将(暂时)剥离无关的透明区域。但它仍然会在iPhone上渲染图像时使用,并影响图像的contentSize。
我认为你可以通过使用boundingBox来获取contentSize
在你的例子中:
CGSize stageSize = [stage boundingBox];
尝试一下,希望你能得到理想的结果,但如果你缩放精灵,你会得到相应的内容大小。
:
stage.scale = 0.5f; or stage.scale = 2.0f;`
你会发现,在第一种情况下,大小减少了一半,在第二种情况下,大小增加了一倍。boundingBox给出当前正在运行的节点的内容大小。
我想这将有助于您获得尺寸。
谢谢