如何在ios中使用陀螺仪应用3D移动背景效果

时间:2013-05-31 08:10:42

标签: ios gyroscope

我想根据设备方向应用移动背景。如果设备垂直竖立,它绕y轴旋转,则背景应根据旋转值向左或向右移动。

背景上的其他图标会静止,因此会产生3d效果。作为参考,我需要与此视频中显示的完全相同的效果:http://www.youtube.com/watch?v=429kM-yXGz8

我到目前为止开发的代码是:

- (void)updateViewsWithAcceleration:(CMAcceleration)acceleration;
{
    _accelX = ((acceleration.x* 0.1) + (_accelX*.9));
    _accelY = ((acceleration.y* 0.1) + (_accelY*.9));
    _accelZ = ((acceleration.z* 0.1) + (_accelZ*.9));

    [_backgroundShadow setFrame:CGRectMake(_accelY*50,_accelZ*50, _backgroundShadow.bounds.size.width, _backgroundShadow.bounds.size.width)];
    [_titleShadow setFrame:CGRectMake(_accelY*50, _accelZ*50, _titleShadow.bounds.size.width, _titleShadow.bounds.size.width)];

}

1 个答案:

答案 0 :(得分:1)

只是一个FYI:你在看加速度,而不是陀螺仪;试试这个:

- (void)viewDidLoad {
    [super viewDidLoad];

    cmmm = [[CMMotionManager alloc] init]; 
    if (cmmm.gyroAvailable) {
        cmmm.gyroUpdateInterval = 1.0/60.0;
        [cmmm startGyroUpdates];
        CMGyroHandler gyroHandler = ^ (CMGyroData *gyroData, NSError *error) {
            CMRotationRate rotate = gyroData.rotationRate;
            NSLog(@"rotation rate: {%6.2f, %6.2f, %6.2f}", rotate.x, rotate.y, rotate.z);
        };
    } else {
        NSLog(@"No gyro");
        [cmmm release];
    }
}