我正在使用cocos2d。在我加载ccspriteframecache和ccspritebatchnode之后,我制作了一个ccsprite。但我需要精灵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];
答案 0 :(得分:1)
contentSize是正确的。您可能需要仔细检查图像的尺寸。
我可以想象你在480x320透明背景上绘制了图像。这将使图像大小保持在480x320,但用于创建纹理图集的工具将(暂时)剥离无关的透明区域。但它仍将用于在iPhone上渲染图像并影响图像的contentSize。
答案 1 :(得分:0)
我认为您可以使用boundingBox获取contentSize。
在你的情况下:
CGSize stageSize = [stage boundingBox];
尝试这个希望你会获得所需的结果,但如果你缩放精灵,你将获得内容大小。
作为:
stage.scale = 0.5f; or stage.scale = 2.0f;`
你会发现在第一种情况下,尺寸减小到一半,在第二种情况下,尺寸是双倍。 boundingBox给出了正在播放的节点的当前内容大小。
我认为这有助于你获得规模。
谢谢