不能阻止标签接受我的接触

时间:2014-05-06 01:52:22

标签: ios objective-c sprite-kit

我正在开发一款游戏,当用户使用某项技能时,在他再次使用之前有一段时间限制。说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];
}

0 个答案:

没有答案