2

在 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);
            }
 }

谢谢你的帮助。

4

0 回答 0