我试图将每次单击SKNode的alpha设置为0或1。我的代码当前将其关闭,但不会重新打开。知道为什么吗?

- (void)handleTouchedPoint:(CGPoint)touchedPoint {
    touchedNode = [self nodeAtPoint:touchedPoint];

    // Detects which node was touched by utilizing names.
    if ([touchedNode.name isEqualToString:@"play"]) {
        isOnPlay = true;
        NSLog(@"Touched play");
    }
    if ([touchedNode.name isEqualToString:@"light1"]) {
        //NSLog(@"%.2f", touchedNode.alpha);
        if(touchedNode.alpha != 0.0)
        {
            NSLog(@"Off");
            touchedNode.alpha = 0.0;
            //[touchedNode setAlpha:0.0];
        }
        else{
            NSLog(@"On");
            touchedNode.alpha = 1.0;
            //[touchedNode setAlpha:1.0];
        }
        NSLog(@"Touched light");
    }
}

最佳答案

您可能会遇到著名的浮点四舍五入问题。使用调试并检查值。 alpha可能不完全为零。

关于ios - 触摸打开和关闭灯,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37336942/

10-10 20:39