@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
Log.d("GameScene", "Action Area Touched " + pTouchAreaLocalX + "," + pTouchAreaLocalY);
float x = pSceneTouchEvent.getX();
float y = pSceneTouchEvent.getY();
if(pSceneTouchEvent.isActionDown()) {
actionDistance = (float) Math.sqrt((x-ACTION_POSITION_X)*(x-ACTION_POSITION_X)+(y-ACTION_POSITION_Y)*(y-ACTION_POSITION_Y));
isOnActionButton = true;
actionKnob.setPosition(x, y);
} else if(pSceneTouchEvent.isActionMove()) {
actionDistance = (float) Math.sqrt((x-ACTION_POSITION_X)*(x-ACTION_POSITION_X)+(y-ACTION_POSITION_Y)*(y-ACTION_POSITION_Y));
if(actionDistance > actionBase.getWidth()/2) {
actionKnob.setPosition(((actionBase.getWidth()/2)*x + (actionDistance - (actionBase.getWidth()/2))*ACTION_POSITION_X)/actionDistance, ((actionBase.getWidth()/2)*y + (actionDistance - (actionBase.getWidth()/2))*ACTION_POSITION_Y)/actionDistance);
} else {
actionKnob.setPosition(x, y);
}
} else if(pSceneTouchEvent.isActionUp()) {
actionKnob.setPosition(ACTION_POSITION_X, ACTION_POSITION_Y);
isOnActionButton = false;
}
if(isOnActionButton = true) {
double l = Math.sqrt((actionKnob.getX() - ACTION_POSITION_X)*(actionKnob.getX() - ACTION_POSITION_X) + (actionKnob.getY() - ACTION_POSITION_Y)*(actionKnob.getY() - ACTION_POSITION_Y));
double r = actionBase.getWidth()/2;
double deltaX = actionKnob.getX() - ACTION_POSITION_X;
double deltaY = actionKnob.getY() - ACTION_POSITION_Y;
player.shoot((float) (((deltaX*(r-l))/l) + deltaX), (float) (((deltaY*(r-l))/l) + deltaY), vbom, camera, physicsWorld);
}
return true;
}
Это мой метод onAreaTouched для моего экранного управления. Я хочу заставить игрока снимать что-то, когда элемент управления коснулся.AndEngine onAreaTouched call, даже если палец не двигается
Однако, используя этот метод, метод onAreaTouched вызывается только тогда, когда я касаюсь в первый раз или когда я двигаю пальцем. Таким образом, событие if (isOnActionButton = true) не будет срабатывать, если я позволю пальцу оставаться неподвижным на элементе управления.
Можно ли добавить некоторые методы, чтобы вызвать вызов метода, даже когда мой палец не перемещается?
Моя цель - заставить игрока стрелять все время, когда нажимается элемент управления.
Заранее благодарен!
Спасибо, хотя я использовал другой подход, я рад, что узнал о TimerHandler. Очень удобно! – augst6