我目前正在使用 AndEngine 在 Android 上制作 2D 滚动射击游戏,但我遇到了相对触摸控制的问题,它允许玩家通过向上/向下/向左/向右拖动手指来控制精灵来移动船和船应该像通过触摸板控制指针一样移动到与手指相同的方向(这在现在的触摸屏 Space Invader 类游戏中很常见)
所以我想出了这个代码,
float oldX, oldY;
float X, Y;
public boolean onSceneTouchEvent(Scene pScene,
TouchEvent pSceneTouchEvent) {
if(pSceneTouchEvent.isActionMove()){
float currentX = pSceneTouchEvent.getX();
float currentY = pSceneTouchEvent.getY();
float deltaX = currentX-oldX;
float deltaY = currentY-oldY;
System.out.println("X: " + X + " Y: " + Y);
X= X + deltaX;
Y= Y + deltaY;
oldX = currentX;
oldY = currentY;
}
return true;
}
我遇到的问题是我将用来设置屏幕上精灵位置的变量 X,Y 不会根据我的手指移动而增加/减少,如果我连续拖动手指右侧,X值应该不断增加,当我向左拖动手指时,X 值也应该不断减少。但我所拥有的是 X 值根据我手指在屏幕上的位置而增加/减少。我做错什么了吗?