iOS 重力感應 學習1 陀螺儀 水平儀 指南針


小球可以隨着重力感應 四處亂撞。 放大了坐標位移 就可以看見小球動了。

然后規定小球的路徑 當滑到中間時候 彈出一張圖片 作為提示。 我做了一個小demo 效果不錯哦

 CMMotionManager *motionManager = [[CMMotionManager alloc]init];
    if (!motionManager.accelerometerAvailable) {
        // fail code // 檢查傳感器到底在設備上是否可用
    }
    motionManager.accelerometerUpdateInterval = 0.01; // 告訴manager,更新頻率是100Hz
    /*
    [motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMAccelerometerData *latestAcc, NSError *error)
    {
        //2. Gravity 獲取手機的重力值在各個方向上的分量,根據這個就可以獲得手機的空間位置,傾斜角度等
        CMAccelerometerData *newestAccel = motionManager.accelerometerData;
        double accelerationX = newestAccel.acceleration.x;
        double accelerationY = newestAccel.acceleration.y;

        
        imageView.frame=CGRectMake(accelerationX*100 , accelerationY*100, 40, 40);
        NSLog(@"%f==%f\n",accelerationY,accelerationY);
        //通過陀螺儀模塊可以實現模擬賽車,模擬射擊等。
        [self.view addSubview:imageView];
        
    }];
    
    //*/
    NSLog(@"%f", Height);
    
    /* 加速度傳感器開始采樣,每次采樣結果在block中處理 */
    // 開始更新,后台線程開始運行。
    [motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error)
     {
         CMAccelerometerData *newestAccel = motionManager.accelerometerData;
         double accelerationX = newestAccel.acceleration.x;
         double accelerationY = newestAccel.acceleration.y;
         f.origin.x += (accelerationX * SIZE) * 1;
         f.origin.y += (accelerationY* SIZE) * -1;
         
         if(f.origin.x < 0)
             f.origin.x = 0;
         if(f.origin.y < 0)
             f.origin.y = 0;
        
         if(f.origin.x > (self.view.frame.size.width - f.size.width))
             f.origin.x = (self.view.frame.size.width - f.size.width);
         if(f.origin.y > (self.view.frame.size.height - f.size.height))
             f.origin.y = (self.view.frame.size.height - f.size.height);
         NSLog(@"%f==%f\n",f.origin.x ,f.origin.y);

         /* 運動動畫 */
         [UIView beginAnimations:nil context:nil];
         [UIView setAnimationDuration:0.1];
 
        
          if(f.origin.y>=Height-40)
         {
            f.origin.y=Height-40;
         }
         imageView.frame=CGRectMake(140 ,f.origin.y, 40, 40);
         //通過陀螺儀模塊可以實現模擬賽車,模擬射擊等。
         [self.view addSubview:imageView];
         if(f.origin.y>=(Height-40)/2&&f.origin.y<=(Height+40)/2)
         {
             [self.view addSubview:baby];
           //  [NSThread sleepForTimeInterval:5.0];
             //
         }
         else
         {
               
             [baby removeFromSuperview];
         }
         [UIView commitAnimations];
         
     }];
   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM