Objective c cocos2d让精灵闪烁,它就不可见了

Objective c cocos2d让精灵闪烁,它就不可见了,objective-c,cocos2d-iphone,sprite,Objective C,Cocos2d Iphone,Sprite,我试图让我的精灵闪烁,但它只是消失了,我搜索了谷歌,但我找不到解决方案,我在做什么: CCBlink * blinker = [CCBlink actionWithDuration: 0.5 blinks: 1]; [player runAction: blinker]; 当我的两个精灵发生碰撞时调用此方法,当碰撞发生时,我希望“玩家”精灵闪烁几秒钟。此时,当精灵碰撞时,“玩家”精灵将不可见……谢谢验证何时(何地)您处理“碰撞”类型的事件,但不从其父级移除精灵。CCBlink似乎

我试图让我的精灵闪烁,但它只是消失了,我搜索了谷歌,但我找不到解决方案,我在做什么:

    CCBlink * blinker = [CCBlink actionWithDuration: 0.5 blinks: 1];  
 [player runAction: blinker];

当我的两个精灵发生碰撞时调用此方法,当碰撞发生时,我希望“玩家”精灵闪烁几秒钟。此时,当精灵碰撞时,“玩家”精灵将不可见……谢谢验证何时(何地)您处理“碰撞”类型的事件,但不从其父级移除精灵。

CCBlink似乎通过在指定的持续时间内,在给定的次数内打开和关闭精灵的可见性来工作。根据您设置的持续时间,有时您可能会在操作结束时出现“关闭”可见性状态(非常糟糕,是的,我以前也有过这种情况),这不是很理想

两项建议: (1) 玩转眨眼的次数。 (2) 始终强制精灵在闪烁结束时可见:


将:[CCShow action]添加到眨眼动作的末尾。您可以将这两个操作串成一个CCSequence。

闪烁操作有缺陷。我始终使用以下方法确保对象在动画结束时保持可见:

Sequence* action = Sequence::create(Blink::create(BLINK_DURATION, BLINK_TIMES), Show::create(), NULL);

是的,当精灵碰撞时,什么也不会发生,我只想让玩家精灵闪烁,所以我把上面的代码放在
if(if(CGRectIntersectsRect,rockRect)0
中,你应该接受答案或评论。+1这很有效。这正是我需要的。(有趣的是,两周前,当我建议OP接受答案时,我遇到了这个问题,现在我使用它)