如何在特定的“时刻”对加速度计轴施加力?

时间:2012-07-05 20:11:46

标签: objective-c ios accelerometer

我是Objective-C和iOS开发的新手,在阅读了一些关于Accelerometer类的文档后,我仍然不确定一些事情,所以也许你可以为我澄清这些..也请请原谅我的C ++ ..我只是以它为例......

我想创建一个看起来像这样的史密斯的while循环:

while(play)
{
    while(getYaxis()>=..... && getYaxis()<=....)
    {
        //do something..
    }
    //more code to execute...
}

我想创建一个名为“getYaxis”的方法,该方法在调用方法时返回在加速度计的Y轴上运行的力...

这可能吗?怎么样?显然你可以设置Accelerometer定期返回g值,因为我只想让一个值返回“second”,我在我的while条件下要求它。然后应该执行其余的代码,如上所示,在某些时候,我将返回到while循环并再次检查Y值。换句话说,不是设置检查加速度计值的频率的间隔,我想让该间隔为执行其余代码所需的时间,并返回到将检查Y-的while循环。这两个检查之间的间隔是否很短,最终可能导致问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

以下是如何获得Accelerometer并成为代表:

UIAccelerometer *theAccelerometer = [UIAccelerometer sharedAccelerometer];
theAccelerometer.updateInterval = 0.001; //in seconds
theAccelerometer.delegate = self;

请务必将<UIAccelerometerDelegate>添加到您的VC中。

然后你可以捕捉到的变化:

-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration

{
    self.x = acceleration.x;
    self.y = acceleration.y;
    self.z = acceleration.z;
}

确保为x,y,z类型的UIAccelerationValue创建了属性。

然后只需编写一个名为getXgetY;

的方法
-(UIAccelerationValue *) getY
{
    return self.y;
}

您可以将其更新为毫秒或您想要的速度,并将其保存在属性中。然后你可以用函数检查属性的值。