我设法得出加速度计值(x,y,z)。是否有一种简单的方法可以使圆圈与这些值一起移动?我也希望它停在屏幕的边缘。谢谢!
答案 0 :(得分:0)
我认为你可以做这样的事情(注意:部分伪代码):
public void onSensorChanged (int sensor, float[] values) {
//adjust someNumber to desired speed
//values[1] can be -180 to 180
float xChange = someNumber * values[1];
//values[2] can be -90 to 90
float yChange = someNumber * 2 * values[2];
//only move object if it will stay within the bounds
if (object.xPos + xChange > 0 && object.xPos + xChange < xBorder) {
object.xPos += xChange;
}
if (object.yPos + yChange > 0 && object.yPos + yChange < yBorder) {
object.yPos += yChange;
}
//force a repaint of your surface here
}
其中:
onSensorChanged
是每次加速度计移动时调用的方法...我不确定您是否使用SensorManager,但对您的方案来说似乎很方便。请注意,您必须自己实现此方法。object
是您要移动的圈子。xBorder
和yBorder
是对象移动的最大边界。尽管你可以使用你喜欢的任何东西,但最小边界假定为0和0。