public void onAnimationFinished(Animation animation) { if (animation == moveAnimation) { dataHolder.getGameEngine().moveFinished(); } else if (animation == explosionAnimation) { dataHolder.getGameEngine().selectionExploded(); startMove(); } }
public void startMove() { if (selectionAnimation.isActive()) { selectionAnimation.stop(); } moveAnimation.setSpeed(dataHolder.getConfiguration().isFastAnimation()); moveAnimation.setStartValues( dataHolder.getGameEngine().getGameField().getMaxMoveX(), dataHolder.getGameEngine().getGameField().getMaxMoveY()); moveAnimation.init(SystemClock.elapsedRealtime()); invalidate(); }
private void initBallSkin(Context context) { Bitmap ballSkinFull = BitmapFactory.decodeResource( getResources(), dataHolder.getConfiguration() == null ? R.drawable.balls : dataHolder.getConfiguration().getSkin()); dataHolder.setBallSkin(ballSkinFull); dataHolder.setExploseBallSkin( BitmapFactory.decodeResource(getResources(), R.drawable.explosion)); }
private void drawBackGroud(Canvas canvas) { if (dataHolder.getGameEngine().getGameField().getSizeY() != backGroundImageFieldSizeY || dataHolder.getGameEngine().getGameField().getSizeX() != backGroundImageFieldSizeX || backgroundImageSaved == null) { backgroundImageSaved = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.RGB_565); Canvas newCanvas = new Canvas(backgroundImageSaved); drawBackGroudImageOnGivenCanvas(newCanvas); backGroundImageFieldSizeX = dataHolder.getGameEngine().getGameField().getSizeX(); backGroundImageFieldSizeY = dataHolder.getGameEngine().getGameField().getSizeY(); } canvas.drawBitmap(backgroundImageSaved, 0, 0, null); }
private void startExplosion() { if (selectionAnimation.isActive()) { selectionAnimation.stop(); } explosionAnimation.setSpeed(dataHolder.getConfiguration().isFastAnimation()); explosionAnimation.init(SystemClock.elapsedRealtime()); invalidate(); }
@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; }
private void drawBackGroudImageOnGivenCanvas(Canvas canvas) { canvas.drawBitmap(dataHolder.getBackgroundImage(), 0, 0, null); dataHolder.getLightPaint().setColor(Color.rgb(0x83, 0x83, 0x83)); dataHolder.getDarkPaint().setColor(Color.rgb(0x3b, 0x3b, 0x3b)); final int cellSize = dataHolder.getCellSize(); final int sizeY = dataHolder.getGameEngine().getGameField().getSizeY(); final int sizeX = dataHolder.getGameEngine().getGameField().getSizeX(); for (int i = 1; i < sizeX; i++) { canvas.drawLine( i * cellSize - 1, 0, i * cellSize - 1, sizeY * cellSize, dataHolder.getLightPaint()); canvas.drawLine(i * cellSize, 0, i * cellSize, sizeY * cellSize, dataHolder.getDarkPaint()); } for (int i = 1; i < sizeY; i++) { canvas.drawLine(0, i * cellSize, sizeX * cellSize, i * cellSize, dataHolder.getDarkPaint()); canvas.drawLine( 0, i * cellSize + 1, sizeX * cellSize, i * cellSize + 1, dataHolder.getLightPaint()); } }
public void setGameEngine(GameEngine gameEngine) { dataHolder.setGameEngine(gameEngine); }
private void initBackgroundImage() { dataHolder.setBackgroundImage( BitmapFactory.decodeResource(getResources(), R.drawable.background)); }
public void setCellSize(int value) { dataHolder.setCellSize(value); }
public int getCellSize() { return dataHolder.getCellSize(); }
public void setConfiguration(Configuration configuration) { dataHolder.setConfiguration(configuration); }