我设法得到加速度计的值(x,y,z)。有什么简单的方法可以使圆圈与这些值一起移动吗?我也希望它停在屏幕的边缘。谢谢!
发布于 2011-01-21 04:33:32
我认为您可以这样做(注意:部分伪码):
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,但您可以任意使用。https://stackoverflow.com/questions/4690208
复制相似问题