我正在开发一款游戏,当用户使用某项技能时,在他再次使用之前有一段时间限制。说5秒钟,所以我有一个按钮,在那个按钮的中间是一个标记,倒数秒,直到我能够再次使用所述技能。
在测试期间,我注意到我的技能没有,因为有时我会点击标签节点。因此我写了
- (void)setupHUD
{
int barHeight = 50;
CGSize backgroundSize =
CGSizeMake(self.size.width, barHeight);
// myView.backgroundColor = [UIColor colorWithWhite:myWhiteFloat alpha:myAlphaFloat];
SKColor *backgroundColor =
[SKColor colorWithRed:0 green:1 blue:0.0 alpha:0.4];
SKSpriteNode *hudBarBackground =
[SKSpriteNode spriteNodeWithColor:backgroundColor
size:backgroundSize];
[hudBarBackground setUserInteractionEnabled:NO];
hudBarBackground.position =
CGPointMake(0, self.size.height - barHeight);
hudBarBackground.anchorPoint = CGPointZero;
[_hudLayer addChild:hudBarBackground];
timeButtTimmer = [SKLabelNode labelNodeWithFontNamed:@"Copperplate"];
tbutttimmer.userInteractionEnabled=NO;
// [tbutttimmer setUserInteractionEnabled: FALSE];
timeButtTimmer.name=@"label";
timeButtTimmer.fontSize=15;;
timeButtTimmer.position =
CGPointMake(self.size.width-75,
self.size.height - 30);
[_hudLayer addChild:timeButtTimmer];
}
令我惊讶的是,标签仍然是可点击的,我的nslog确认我可以点击它,因为我有一个我触摸的节点名称的nslog。
我修改了我的代码以阅读
if ([node.name isEqualToString:@"button"] | [node.name isEqualToString:@"Readypras"])
我知道这很脏,但是之前有人遇到过这个或者我做错了什么。我使用了错误的财产吗?如果节点收到触摸事件,那么文档userInteraction
中的内容就是设置的。
-(id)initWithSize:(CGSize)size level:(int)level {
if (self = [super initWithSize:size]) {
_hudLayer = [SKNode node];
[_hudLayer setUserInteractionEnabled:NO];
[self addChild:_hudLayer];
[self setupHUD];
}
return self;
}
- (void)createUserInterface
{
SKLabelNode* startMsg =
[SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];
startMsg.name = @"msgLabel";
startMsg.userInteractionEnabled=NO;
startMsg.text = @"Tap Screen to run!";
startMsg.fontSize = 32;
startMsg.position = CGPointMake(250, 150);
[self addChild: startMsg];
}