2011-01-14 62 views

回答

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是你想要移动的圆圈。
  • xBorderyBorder是对象移动的最大边界。最小边界被假定为0和0,尽管你可以使用任何你喜欢的。