public void startSelection() { if (moveAnimation.isActive()) { return; } selectionAnimation.init(SystemClock.elapsedRealtime()); invalidate(); }
public void pause() { if (moveAnimation.isActive()) { moveAnimation.stop(); } if (selectionAnimation.isActive()) { selectionAnimation.stop(); } }
@Override public boolean onTouchEvent(MotionEvent event) { if (moveAnimation.isActive() || explosionAnimation.isActive()) { return true; } if (event.getAction() != MotionEvent.ACTION_UP) { return true; // super.onTouchEvent(event); } int x = Math.round((event.getX() - dataHolder.getCellSize() / 2) / dataHolder.getCellSize()); int y = Math.round((event.getY() - dataHolder.getCellSize() / 2) / dataHolder.getCellSize()); if (x < 0 || x >= dataHolder.getGameEngine().getGameField().getSizeX() || y < 0 || y >= dataHolder.getGameEngine().getGameField().getSizeY()) { return super.onTouchEvent(event); } else { TouchResult results = dataHolder.getGameEngine().touchAction(x, y); switch (results) { case explode: startExplosion(); break; case selected: startSelection(); break; case no_action: if (selectionAnimation.isActive()) { selectionAnimation.stop(); invalidate(); } if (moveAnimation.isActive()) { moveAnimation.stop(); invalidate(); } break; default: break; } } return true; }
@Override protected void onDraw(Canvas canvas) { // drawField(canvas); drawBackGroud(canvas); if (moveAnimation.isActive()) { moveAnimation.draw(canvas); } else if (explosionAnimation.isActive()) { explosionAnimation.draw(canvas); } else { selectionAnimation.draw(canvas); } if (selectionAnimation.isActive() || moveAnimation.isActive() || explosionAnimation.isActive()) { invalidate(); } updateAnimationObjects(); if (false) { drawStatistic(canvas); } }