gpt4 book ai didi

ios - 用motionManager iOS 替换共享加速计

转载 作者:行者123 更新时间:2023-11-29 03:01:29 25 4
gpt4 key购买 nike

我已经尝试了几种方法,但我找不到可以替代我的方法

[[UIAccelerometer sharedAccelerometer] setUpdateInterval:(1.0 / kAccelerometerFrequency)];
[[UIAccelerometer sharedAccelerometer] setDelegate:self];

最近我尝试将其替换为

motionManager = [[CMMotionManager alloc] init];
motionManager.accelerometerUpdateInterval = (1.0 / kAccelerometerFrequency);

但它似乎不适用于我的 void

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
CGPoint pt = theCar.center;
CGFloat accel = acceleration.x * kAccelerationSpeed;

float halfCarWidth = theCar.frame.size.width / 2;
if(pt.x - halfCarWidth + accel > 0 && pt.x + halfCarWidth + accel < 320) {
pt.x += accel;
}

[theCar setCenter:pt];
}

那么,由于 sharedAccelerometer 在 iOS 5 中已贬值,我应该用什么替换它

最佳答案

运动管理器没有委托(delegate)消息。使用计时器 (NSTimer) 并定期轮询运动管理器的值。

self.motman = [CMMotionManager new];
if (!self.motman.accelerometerAvailable) {
// report error or whatever
return;
}
self.motman.accelerometerUpdateInterval = 1.0 / 30.0;
[self.motman startAccelerometerUpdates];
self.timer =
[NSTimer
scheduledTimerWithTimeInterval:self.motman.accelerometerUpdateInterval
target:self selector:@selector(pollAccel:) userInfo:nil repeats:YES];

现在 pollAccel: 被重复调用。拉出加速度计信息:

CMAccelerometerData* dat = self.motman.accelerometerData;
CMAcceleration acc = dat.acceleration;

关于ios - 用motionManager iOS 替换共享加速计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23251947/

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