所以我正在尝试使用屏幕操纵杆构建一个游戏,该操纵杆可以在屏幕上移动位图。但是当我朝任何方向按住操纵杆并保持不动时,位图也会停止移动。只有当我移动操纵杆时,位图才会移动。基本上,我希望能够在左侧位置按住操纵杆并让位图向左移动,直到我松开为止。代码中的其他所有内容均有效。有什么建议吗?
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN)
_dragging = true;
else if (event.getAction() == MotionEvent.ACTION_UP)
_dragging = false;
_touchingPoint = new Point();
if (_dragging) {
// get the pos
int x = (int) event.getX();
int y = (int) event.getY();
_touchingPoint.x = x;
_touchingPoint.y = y;
double a = _touchingPoint.x - initx;
double b = _touchingPoint.y - inity;
controllerDistance = Math.sqrt((a * a) + (b * b));
if (controllerDistance > 75) {
a = (a / controllerDistance) * 75;
b = (b / controllerDistance) * 75;
_touchingPoint.x = (int) a + initx;
_touchingPoint.y = (int) b + inity;
}
bitmapPoint.x += a * .05;
bitmapPoint.y += b * .05;
} else if (!_dragging) {
// Snap back to center when the joystick is released
_touchingPoint.x = initx;
_touchingPoint.y = inity;
}
}
最佳答案
尝试 this它是适用于 Android 的屏幕操纵杆的开源 API。
关于java - Android 屏幕操纵杆问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11516431/