麻烦动画CC LabelTTF使用不透明度属性

时间:2012-03-21 05:04:37

标签: iphone objective-c xcode ios4 cocos2d-iphone

我有以下代码:

CCLabelTTF *start = [CCLabelTTF labelWithString:@"What Car was that?" fontName:@"Marker Felt" fontSize:32];
start.position = ccp( size.width * 1.5 / 4, size.height * 3 / 4 );
[start setOpacity:0.0];
[self addChild:start];

[self fadeText:start duration:1.5 curve:0 x:0 y:0 alpha:255.0];

以下是fadeText的定义方式:

- (void)fadeText:(CCLabelTTF *)progress duration:(NSTimeInterval)duration
             curve:(int)curve x:(CGFloat)x y:(CGFloat)y alpha:(float)alpha
{
    // Setup the animation
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:duration];
    [UIView setAnimationCurve:curve];
    [UIView setAnimationBeginsFromCurrentState:YES];

    // The transform matrix
    progress.opacity = alpha;
    //[progress setOpacity:alpha];
    // Commit the changes
    [UIView commitAnimations];
}

由于某种原因,效果在没有动画的情况下发生,因此文本显示(因此不透明度变为255)但它没有动画!

2 个答案:

答案 0 :(得分:0)

Alpha范围从0到1.如果指定255,它将非常快地达到1并保持不变。所以只需通过alpha:1就可以了。

答案 1 :(得分:0)

您可以使用CCFadeTo功能淡化CCLabelTTF,而不是UIView动画。

id fade = [CCFadeTo actionWithDuration:1 opacity:200];

将此淡入淡出动画作为runAction提供给标签。