小球可以隨着重力感應 四處亂撞。 放大了坐標位移 就可以看見小球動了。
然后規定小球的路徑 當滑到中間時候 彈出一張圖片 作為提示。 我做了一個小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]; }];![]()