gpt4 book ai didi

ios - UI加速计有帮助吗?

转载 作者:行者123 更新时间:2023-11-29 04:58:34 24 4
gpt4 key购买 nike

经过一两次谷歌搜索后,我想出了这段代码来保存用户当前所在的位置(这样我就可以校准它)并将其保存到 NSUserDefaults 中。这是在我的设置 View 中:

//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 上?

编辑1:

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceration {
float accelX = (acceration.x - [[NSUserDefaults standardUserDefaults] floatForKey:@"X-Calibrate"]);
float accelY = (acceration.y - [[NSUserDefaults standardUserDefaults] floatForKey:@"Y-Calibrate"]);
AccelPoint.x += (accelX*50);
if (AccelPoint.x < 0) {
AccelPoint.x = 320;
}
if (AccelPoint.x > 320) {
AccelPoint.x = 0;
}
playerSpeed += 0.066;

AccelPoint.y += playerSpeed;

Square.center = AccelPoint;

}

在我的代码中,我没有使用accelY。我应该如何将其应用到我的代码中?我对代码进行了一些清理,使其更加清晰。

最佳答案

不确定您到底想如何使用您存储的数据,但要访问它,只需:

float xCal = [[NSUserDefaults standardUserDefaults] floatForKey:@"X-Calibrate"];
float yCal = [[NSUserDefaults standardUserDefaults] floatForKey:@"Y-Calibrate"];

编辑:

因此,根据您的评论,也许可以尝试这样的事情。

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

关于ios - UI加速计有帮助吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7465409/

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