2011-08-22 4 views
0

Android 플랫폼을 개발 중입니다. 나는 기본적으로 당신이 전화를 흔들면 점프 컨트롤을하고 싶었습니다. 그러나, 당신이 아마 말할 수 있듯이, 나는 약간 혼란 스럽다.특정 흔들림 감지 (그림 : D)

나는 가속도계의 X, Y, Z 값을 가지고 있는데, 플레이어가 휴대폰을 흔들고 있는지 어떻게 알 수 있습니까? 내가 아는 한, 이것은 최소한 사소한 것이 아닙니다. 적어도 저에게는 있습니다.

떨리는 것은 잘못된 단어 일 수 있습니다. 전화를 움직여서 점프하는 것보다 낫습니다. 나는 단어에서 그것을 설명하는 방법을 모른다, 그래서 여기에 아름다운 그림이다 :

Demo of shaking phone?

답변

0

당신은이 작업을 수행하는 Linear Acceleration Sensors를 사용하고 싶습니다.

센서 유형을 트리거 코드에 넣고 필요한 로직을 onSensorChanged()에 입력하십시오.

희망이 도움이됩니다.

+0

감사합니다. 하드웨어는 얼마나 흔합니까? 나는 하드웨어 센서에 대해 전혀 알지 못한다는 것을 인정할 것이다. –

+0

목표로 삼고 싶은 장치로 스스로 결정할 필요가있는 것입니다. Android 개발자 사이트 타겟 기기 섹션을 확인해보십시오. 내가 아는 한, 가속도계가있는 모든 장치에도이 센서가 있습니다 (정상 가속도계의 파생 가능성이 높음) – Codeman

0

루어 가속도계 좌표를 관성이있는 볼로 생각하십시오. 전화가 점프하면 점프 (Z가 위로 이동 한 다음 뒤로 이동).

2

수동으로 수행하는 방법을 설명하겠습니다.

가속도계는 개체가 느낀 가속도에 해당하는 값을 반환합니다.

예를 들어 X 값이 높으면 휴대 전화가 X 방향으로 가속되고 있음을 나타냅니다. 그러나이 가속이 흔들리거나 갑자기 일정한 방향으로 움직이기 때문에 단일 스냅 샷으로는 알 수 없습니다.

따라서, 가속도가 높고 갑자기 매우 낮거나 음수가되는 등의 문제가 발생할 수 있습니다. 당신이 원하는 것은 가속도 또는 저크의 변화율입니다.

코드의 용어로, 가속 값의 기록을 유지하고 실행중인 저크 값 (예 : 지난 10 프레임의 가속도 변경)을 유지하려고합니다. 이 값이 임계 값 (양수 또는 음수)에 도달하면 이것이 사용자의 쉐이크입니다.

물론 X, Y 및 Z 가속도에 대해이 작업을 수행 한 다음 저크 값을 추가하여 임계 값에 대해 테스트 된 마지막 가속도를 얻습니다.

0

나는 평균 250ms와 같은 가속도계 측정 값을 평균 한 다음 avg가 예상되는 방향으로 값 (귀하의 재량 및 애플리케이션 요구 사항)보다 높은지 확인해야한다고 생각합니다. 당신의 행동이 완료되면. 당신이 흔들면, 가속도계의 시간은 거의 중립이 될 것입니다. 위에서 설명한 내용을 반복적으로 테스트하여 더 나은 사용자 환경을 위해 올바른 숫자로 그루브를 잡아야합니다.

관련 문제