在 xcode 5 中,我使用 coremotion 获取加速度计数据,然后使用它在屏幕上向右/向左和向上/向下移动对象。右左完美,因为 x 轴的 0 中心点是笔直向上的。然而,大多数人将手机放在 y 轴上大约 .-75 的角度。我想将此重置为 0 轴,以便当从该点向后倾斜手机时,对象会向下移动,而当他们从该点向前倾斜时(朝向 90 度),对象会向上移动。我已经尝试将 y 中心的最小值和最大值设置为不同的点,但无论我做什么,对象只会相对于原始的 y 0 移动,它是直线向上的。这是我的代码。
鉴于确实加载
self.motionManager = [[CMMotionManager alloc] init];
self.motionManager.accelerometerUpdateInterval = .05;
[self.motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue]
withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
[self outputAccelertionData:accelerometerData.acceleration];
if(error){
NSLog(@"%@", error);
}
}];
并分开
-(void)outputAccelertionData:(CMAcceleration)acceleration
{
delta.x = acceleration.x * 10;
delta.y = acceleration.y * 10;
imageView2.center = CGPointMake(imageView2.center.x - delta.x, imageView2.center.y + delta.y);
if (imageView2.center.x < 145) {
imageView2.center = CGPointMake(145, imageView2.center.y);
}
if (imageView2.center.x > 165) {
imageView2.center = CGPointMake(165, imageView2.center.y);
}
if (imageView2.center.y < 0) {
imageView2.center = CGPointMake( imageView2.center.x,0);
}
if (imageView2.center.y >600) {
imageView2.center = CGPointMake(imageView2.center.x,600);
NSLog(@"imageViewcenter%f",imageView2.center.y);
}
}
谢谢你的帮助。