티스토리 뷰

반응형

안드로이드에서는 가속도계 사용 시 SensorManager을 사용합니다. 

이와 같이 swift에서는 MotionManager가 존재 합니다.


포스트에서 공유할 내용은 클로저에서 커스텀하게 만든 함수 호출 방식으로 사용하였습니다.


var motionManager = CMMotionManager()


motionManager을 생성한 후에 sensor() 함수에서 가속도 센서를 시작하게 됩니다.


1
2
3
4
5
6
7
func sensor(){
    // accelerometerUpdateInterval 은  가속도 센서가 호출 간격을 설정하게 됩니다.
    motionManager.accelerometerUpdateInterval = 0.5
 
    // 가속도 센서를 시작합니다. 가속도 센서의 리스너는 클로저로 처리되며, outputAccelerationData() 함수을 호출합니다.
    motionManager.startAccelerometerUpdates(to: OperationQueue.current!, withHandler: {accelerometerData, error in self.outputAccelerationData(acceleration: (accelerometerData?.acceleration)!)})
}



가속도 센서의 값을 표시합니다.


1
2
3
4
5
func outputAccelerationData(acceleration: CMAcceleration){
    print("x = \(acceleration.x)")
    print("y = \(acceleration.y)")
    print("z = \(acceleration.z)")    
}



outputAccelerationData 에서 전달받은 값을 이용하여, 앞, 뒤, 좌, 우 이동 조작작이 가능합니다. 자이로센서를 활용한 게임 및 교육 프로젝트 등 다양한 곳에서 사용 가능할 것으로 보입니다.







반응형
댓글