1

谷歌一两次后,我想出了这段代码来保存用户的当前位置并将其保存到 NSUserDefaults。这是在我的设置视图中:代码:

//Add code for calibrating accelerometer
        UIAcceleration *acceleration;
        float accelX = (acceleration.x - [[NSUserDefaults standardUserDefaults] floatForKey:@"X-Calibrate"]);
        float accelY = (acceleration.y - [[NSUserDefaults standardUserDefaults] floatForKey:@"Y-Calibrate"]);
        [[NSUserDefaults standardUserDefaults] setFloat:accelX forKey:@"X-Calibrate"];
        [[NSUserDefaults standardUserDefaults] setFloat:accelY forKey:@"Y-Calibrate"];

要重置校准,我会这样做:代码:

[[NSUserDefaults standardUserDefaults] setFloat:0 forKey:@"X-Calibrate"];
    [[NSUserDefaults standardUserDefaults] setFloat:0 forKey:@"Y-Calibrate"];

现在这里是我需要一点帮助的地方。现在我在 NSUserDefaults 中有这些值。我将如何将其应用于以下代码,以便“完全”实现校准?这是当前加速度计的代码: 代码:

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceration {
    AccelPoint.x += (acceration.x*50);
    if (AccelPoint.x < 0) {
        AccelPoint.x = 320;
    }
    if (AccelPoint.x > 320) {
        AccelPoint.x = 0;
    }
    playerSpeed += 0.066;
    AccelPoint.y += playerSpeed;
    Square.center = AccelPoint; 
}

这是一些变量及其定义方式: 代码:

CGPoint AccelPoint;
float playerSpeed;

谢谢!

还有关于加速度计代码的快速小站点问题,我应该使用 if-elseif 吗?那会更有效率还是我应该把它留在if-if?

4

0 回答 0