gpt4 book ai didi

iphone - 将两种纹理合二为一

转载 作者:太空宇宙 更新时间:2023-11-04 03:06:35 25 4
gpt4 key购买 nike

我正在为 iOS 开发游戏。我正在使用 cocos2d 库。我想要一个对象,它有 3 个部分——开始、结束和中间。我有这些组件的图像。对象可以在创建时被拉伸(stretch)。但是只有中间部分应该被拉伸(stretch),开头和结尾应该没有缩放。因为这个操作只执行一次,所以我决定为这个对象创建一个新的 CCSprite 是个好主意,而不是保留三个(为了提高性能)。

我正在使用 CCSPriteBatchNode 进行渲染,但我不知道我是否真的需要组合对象的各个部分(也许使用批处理渲染 3 个部分与渲染一个预组合对象一样快)。

所以有两个问题:

  1. 我需要将多个部分合并到一个对象中吗?

  2. 如果是 - 我该怎么做?

最佳答案

您可以创建一个节点并将三个 Sprite 作为子节点添加到其中,而不是组合纹理。然后,您可以将父节点作为一个实体来使用。

类似的东西:

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];

您可以根据参数缩放和定位每个单独的 Sprite ,然后使用 sprites 对象将它们作为一个整体进行定位/缩放。

这可能会对性能造成很小的影响,所以在对大量 Sprite 使用它之前我会三思.

关于iphone - 将两种纹理合二为一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4240611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com