gpt4 book ai didi

ios - Cocos2d:在运行时为Sprite节点中批处理的CCSprite设置zOrder似乎无效

转载 作者:行者123 更新时间:2023-12-01 18:25:00 25 4
gpt4 key购买 nike

我现在可以在运行时在CCSprite对象上调用这些方法,因为我决定将其批处理在CCSpriteBatchNode中,它似乎不再起作用:

sprt = [CCSprite spriteWithSpriteFrameName:@"sprt.png"];
sprt.anchorPoint = CGPointMake(0.5f, 0.5f);
sprt.position = CGPointMake(40.0f, 60.0f);
[batchNode addChild:sprt z:-1]; // It used to work when I was simply "adding as child" the sprt object, I guess now doesn't set the order anymore because somehow the CCSpriteBatch node doesn't allow the re-ordering of child added to it

CCCallFunc *callback = [CCCallFunc actionWithTarget:self selector:@selector(moveBackwards)];
CCCallFunc *callback2 = [CCCallFunc actionWithTarget:self selector:@selector(moveForward)];

[sprt runAction: [CCRepeatForever actionWithAction: [CCSequence actions: callback2, callback , nil]]];

-(void) moveBackwards
{
[sprt setZOrder:-1];
}

-(void) moveForward
{
[sprt setZOrder:1];
}

最佳答案

如果您有CCSpriteBatchNode,则必须考虑所有CCSprite都在同一层(spritebatch节点)上。

这意味着,相对于该sprite batch节点中的其他sprite,sprite批处理节点中的sprite可以更改其z顺序,但是您不能更改z顺序以使sprite-batched的sprite出现在另一个节点之前或之后。 Sprite的CCSpriteBatchNode的子级。

我很确定这是您遇到的问题。如果您在解决此问题时遇到麻烦,请考虑CCSpriteBatchNode在z排序方面具有与CCLayer相同的行为(分别是其他任何节点,但开发人员似乎挂在CCLayer上作为唯一/主要的分层结构)。也许这使它更容易理解。

关于ios - Cocos2d:在运行时为Sprite节点中批处理的CCSprite设置zOrder似乎无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14428811/

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