gpt4 book ai didi

ios - CCActionRemove/addChild 未在预定方法中一致显示

转载 作者:行者123 更新时间:2023-11-29 02:51:13 27 4
gpt4 key购买 nike

请耐心等待,因为我是 OOP/ObjC/Cocos2d 的新手。

我有一个像这样每秒触发的方法:[self schedule:@selector(eyelidsBlink:) interval:1.0];

schedule 方法是这样的:

-(CCTimer *) schedule:(SEL)selector interval:(CCTime)interval
{
return [self schedule:selector interval:interval repeat:CCTimerRepeatForever delay:interval];
}

方法如下:

- (void)eyelidsBlink:(CCTime)dt{

CCActionRemove *actionRemoveEyelidsNormal = [CCActionRemove action];
[_whiteGuy_EyelidsNormal runAction:actionRemoveEyelidsNormal];

_whiteGuy_EyelidsBlink = [CCSprite spriteWithImageNamed:@"EyelidsBlink_iPhone4.png"];
_whiteGuy_EyelidsBlink.position = ccp(self.contentSize.width/2,self.contentSize.height/2);
[_whiteGuy_EyelidsBlink setScale:0.5];
[self addChild:_whiteGuy_EyelidsBlink];

CCActionRemove *remove_eyelidsBlink = [CCActionRemove action];
[_whiteGuy_EyelidsBlink runAction:remove_eyelidsBlink];
NSLog(@"Eyelids blinked");

_whiteGuy_EyelidsNormal = [CCSprite spriteWithImageNamed:@"EyelidsNormal_iPhone4.png"];
_whiteGuy_EyelidsNormal.position = ccp(self.contentSize.width/2,self.contentSize.height/2);
[_whiteGuy_EyelidsNormal setScale:0.5];
[self addChild:_whiteGuy_EyelidsNormal];
}

我能看到第一个眨眼,但之后就看不到其他任何眨眼了。我的 NSLog 每秒都在控制台中打印,所以我知道正在调用 eyelidsBlink 方法。

谁能帮我弄清楚为什么我在第一次眨眼后就看不到任何眨眼了?如果您需要更多信息,或者您是否可以建议任何测试来解决问题,请告诉我。

最佳答案

几乎没有时间渲染闪烁 Sprite ,因为您在添加它的瞬间就将其删除。您必须安排另一个选择器一次,即 eyeLidsBlinkOff 在 0.1 秒后运行并隐藏眨眼 Sprite 。

注意:这段代码效率很低。创建 Sprite 是一个相对缓慢的操作。取而代之的是将两个 Sprite 都保留为 child ,但将一个 Sprite 的 visible 属性设置为 NO。眨眼时只需翻转每个 Sprite 的可见标志。这也会使代码更短。

关于ios - CCActionRemove/addChild 未在预定方法中一致显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24500746/

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