zoukankan      html  css  js  c++  java
  • 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
    ",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
    ",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];
             
         }];
       
  • 相关阅读:
    BZOJ_2017_[Usaco2009 Nov]硬币游戏_博弈论+DP
    BZOJ_1916_[Usaco2010 Open]冲浪_分层图+拓扑排序+DP
    BZOJ_1915_[Usaco2010 Open]奶牛的跳格子游戏_DP+单调队列
    读入/输出优化模板
    BZOJ_4327_JSOI2012 玄武密码_AC自动机
    计算机网络学习笔记:第六章.应用层
    计算机网络学习笔记:第五章.传输层
    计算机网络学习笔记:第四章.网络层
    计算机网络学习笔记:第三章.数据链路层
    计算机网络学习笔记:第二章.物理层
  • 原文地址:https://www.cnblogs.com/someonelikeyou/p/3586855.html
Copyright © 2011-2022 走看看