2016-02-04 5 views
2

Я делаю игру, и мне нужно получить акселерометр двух последних точек, по которому телефон двигался аналогично, если телефон переместился от точки ноль до точки 20 по оси x , текущий акселерометр в x равен 20, и я могу его получить, но я не могу получить последнюю точку (нулевую точку), которая находится перед текущей точкой (20 баллов), и вот код текущей точки:Как рассчитать акселерометр последних двух точек, на котором движется устройство

var currentX: Double = 0.0 
// and then in viewDidload : 
movementManager.accelerometerUpdateInterval = 0.2 
//Start Recording Data 
    movementManager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue())   
     { (accelerometerData: CMAccelerometerData?, NSError) -> Void in 
self.getvalues((accelerometerData?.acceleration)!) 
      if(NSError != nil) 
      { 
       print("\(NSError)") 
      } 
} 
func getvalues(acceleratiuon:CMAcceleration) 
{   
     currentX = acceleratiuon.x 
} 

ответ

1

Существует много способов получить последние две точки от акселерометра, но я использовал в своем коде, что - я использовал поток, который фиксирует все точки от датчика в динамическом списке через определенный промежуток времени, а затем использует его в управлении положением спрайта. Может быть, это поможет вам. спасибо

+1

Спасибо за ваш ответ, но можете ли вы показать мне, как это сделать, пожалуйста! Еще раз спасибо –

+0

его довольно простой регистр слушателя для изменения данных датчика, и эта функция обратного вызова записывает все значения в динамическом массиве! –

+0

Большое спасибо @Ganesh, ваш ответ мне очень помог :) –