我正在为iOS开发游戏。我正在使用cocos2d库。我想要一个具有3个部分的对象 - 开始,结束和中间。我有这些组件的图像。并且在创建时可以拉伸对象。但是只有中间部分应该被拉伸,开始和结束应该没有缩放。因为这个操作只做了一次我决定为这个对象创建一个新的CCSprite是个好主意,而不是保留三个(为了提高性能)。
我正在使用CCSPriteBatchNode进行渲染,我不知道是否真的需要组合对象的部分(使用批处理渲染3部分将与渲染一个预组合对象一样快)。
所以有两个问题:
我是否需要在一个对象中组合部分?
如果,是的 - 我怎么能这样做?
答案 0 :(得分:1)
您可以创建一个节点,并将三个精灵添加为子节点,而不是组合纹理。然后,您可以将父节点作为单个实体使用。
有些事情:
CCNode *sprites = [CCNode node];
CCSprite *spriteA = [CCSprite spriteWithSpriteFrameName:@"spriteA.png"];
spriteA.position = ccp(-10, 0);
[sprites addChild:spriteA];
CCSprite *spriteB = [CCSprite spriteWithSpriteFrameName:@"spriteB.png"];
spriteB.position = ccp(0, 0);
[sprites addChild:spriteB];
CCSprite *spriteC = [CCSprite spriteWithSpriteFrameName:@"spriteC.png"];
spriteC.position = ccp(10, 0);
[sprites addChild:spriteC];
您可以根据您的参数缩放和定位每个精灵,然后使用sprites
对象将它们整体定位/缩放。
可能会有轻微的性能损失,所以我会在使用它之前考虑大量的精灵,但我在一些情况下一直使用这种方法,在我的情况下我没有注意到任何性能问题
答案 1 :(得分:1)
查看RenderTexture演示。
您可以使用这些图像代替画笔,而不是使用画笔,将3个部分放在上面。