2012-08-15 2 views
0

가속도계 (X 축 및 Y 축)에서 값을 얻은 후에이 값을 xSpeed ​​및 ySpeed ​​변수에 할당 한 다음이 값에 따라 공을 이동합니다. 문제는 가속도계 값이 무엇이든 xSpeed ​​및 ySpeed ​​활동 시작시 0 (공이 이동 될 때까지 이동하지 않음)을 원합니다. 나는 이런 종류의 교정을하고 싶다.가속도계 시작 위치

Y 축의 경우이 방법을 시도했지만 휴대 전화의 모든 시작 위치에서 작동하지 않습니다.

ball.setYSpeed(ySpeed-startAccelY); 

여기서 startAccelY는 Y 축의 가속도계의 시작 값이고 ySpeed는 새 값으로 지정됩니다.

답변

2

원래 시작 값을 가져 와서 현재 값에서 빼는 것이 좋습니다.

는 예를 들어, 당신은 당신의 코드에서 변수를 가지고 : 당신이 당신의 공에게 책을 읽어 현재의 가속도계를 적용 할 때

float initialPosition = 1.4; // 1.4 is just an example, you'd set it to the reading of the accelerometer 

그런 다음, 당신이 공 이동을 할 수있는은 initialPosition 값을 뺄 수 있습니다. 이 방법으로 공은 처음에는 실속하게 보입니다.

이 정보가 도움이되기를 바랍니다.

+0

이것은 정확히 내가 Y 축에 대해 수행 한 것입니다. 그것은 꽤 잘 작동하지만 전화가 똑바로되면 잘 작동하지 않습니다. 그러나 X 축에서는 작동하지 않습니다. – Alex

+0

X 축에 대한 해결책은 없습니까? – Alex

+0

X 축에서도 작동해야하며 작동하지 않는 이유는 무엇입니까? –

1

TYPE_ACCELEROMETER 센서를 사용한다고 가정합니다. 대신 TYPE_LINEAR_ACCELERATION 센서를 사용해보세요. 자동으로 센서 판독 값에서 중력을 빼기 때문에 휴대 전화를 움직이지 않으면 가중치는 0으로 유지됩니다.

[편집] Api 9 + though.

+0

이것은 문제를 해결하지 못했습니다. – Alex