gpt4 book ai didi

iphone - 在不增加绘制调用次数的情况下从 CCMenu 中的批处理节点添加 Sprite 的正确方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:15:38 26 4
gpt4 key购买 nike

假设我正在使用 CCSpriteFrameCache 并像这样添加帧

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"atlas.plist"];
mySpriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"atlas.png"];
CCSprite *oneSprite = [CCSprite spriteWithSpriteFrameName:@"abc"]; //yes I do not use extensions, who need them?
[mySpriteSheet addChild:oneSprite];

这很好用。您可以在不增加绘制调用的情况下向 mySpriteSheet 添加大量 Sprite ,但假设我想在 CCMenuItem 中使用这些 Sprite ,或者在本例中是 CCMenuItem 的子类 CCMenuItemSprite,如下所示:

CCSprite *spriteNormal = [CCSprite spriteWithSpriteFrameName:imagemNormal];
CCSprite *spriteHighlight = [CCSprite spriteWithSpriteFrameName:imagemHighlight];

CCMenuItemSprite *myItem = [CCMenuItemSprite itemWithNormalSprite:spriteNormal
selectedSprite:spriteHighlight
target:target
selector:@selector(doSomething)];

然后该项目进入 CCmenu

CCMenu *menu = [CCMenu menuWithItems:myItem, nil];

现在,问题来了。如果我这样做

[self addChild:menu];

绘制调用会增加,即使是来自批处理节点的 Sprite ,我也做不到

[mySpriteSheet addChild:menu]; 

因为它会崩溃。

我该怎么做?

最佳答案

简短的回答:你不能。

长答案(当然不完全是):您必须编辑 CCMenu 的代码才能使其工作。恕我直言,这不值得麻烦,编写自己的支持批处理的按钮/菜单类要容易得多。

关于iphone - 在不增加绘制调用次数的情况下从 CCMenu 中的批处理节点添加 Sprite 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15073640/

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