gpt4 book ai didi

ios - CCLabelTTF 在 CCSequence 之后消失

转载 作者:行者123 更新时间:2023-11-29 13:37:07 24 4
gpt4 key购买 nike

我需要你的建议。在我的 GameScene 中,我有一个点标签 curentPointsLabel。要更新我有一个函数,但是在性能 updateCurentPoints (CCSequence) 之后点标签消失了!为什么?

初始化

_curentPointsLabel = [CCLabelTTF labelWithString:@"" dimensions:CGSizeMake(screenSize.width*0.17f, screenSize.height*0.1f) alignment:UITextAlignmentLeft fontName:@"Trebuchet MS" fontSize:15];
_curentPointsLabel.anchorPoint = CGPointMake(1, 1);
_curentPointsLabel.position = ccp( screenSize.width-screenSize.height/20, screenSize.height-2*screenSize.height/20);
_curentPointsLabel.color = ccc3(0,0,0);
[self addChild:_curentPointsLabel];

当我想要更新点标签时我会这样做

- (void)updateCurentPoints:(int)points {

if(_curentPoints+points<0)
_curentPoints=0;
else
_curentPoints=_curentPoints+points;

// [_curentPointsLabel setString:[NSString stringWithFormat:@"Score: %d",_curentPoints]];

NSString * valueString=[[[NSString alloc] initWithString:[NSString stringWithFormat:@"Score: %d",_curentPoints]] retain];

id sequence=[CCSequence actions:
[CCCallFuncND actionWithTarget: self selector: @selector(setLabelColor:withIndex:) data:(void*)1],
[CCCallFuncND actionWithTarget: self selector: @selector(setLabelValue:withValue:) data:(NSString*)valueString],
[CCBlink actionWithDuration:0.5f blinks:2],
[CCCallFuncND actionWithTarget: self selector: @selector(setLabelColor:withIndex:) data:(void*)3],

nil];

[_curentPointsLabel runAction:sequence];

[valueString release];
}

//*******************************************************************
-(void) setLabelValue:(id) sender withValue:(NSString*) value
{
CCLabelTTF *label=(CCLabelTTF *)sender;
NSString * valueString=[[[NSString alloc] initWithString:[NSString stringWithFormat:@"%@",value]] retain];
[label setString:[NSString stringWithFormat:@"%@",valueString]];
[valueString release];
}
//*******************************************************************
-(void) setLabelColor:(id) sender withIndex:(int)index
{
CCLabelTTF *label=(CCLabelTTF *)sender;

if(index==0)
label.color = ccc3(255,255,255);//white
else if(index==1)
label.color = ccc3(0,255,0);//green
else if(index==2)
label.color = ccc3(255,0,0);//red
else if(index==3)
label.color = ccc3(0,0,0);//black
NSLog(@"color:%i",index);
}

最佳答案

添加 [CCShow Action ] 以确保 Sprite 可见。试试这个:

id sequence=[CCSequence actions:
[CCCallFuncND actionWithTarget: self selector: @selector(setLabelColor:withIndex:) data:(void*)1],
[CCCallFuncND actionWithTarget: self selector: @selector(setLabelValue:withValue:) data:(NSString*)valueString],
[CCBlink actionWithDuration:0.5f blinks:2],
[CCShow action],
[CCCallFuncND actionWithTarget: self selector: @selector(setLabelColor:withIndex:) data:(void*)3],
nil];

还可以通过将眨眼次数从 2 次更改为 3 次(或除 1 以外的其他奇数)来进行测试。任何一种解决方案都应该有效。

关于ios - CCLabelTTF 在 CCSequence 之后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10292128/

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