Mercurial > hg > ristipolku
diff game/Engine.java @ 54:cc7943cd7f2d
Moar work.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 23 Feb 2011 19:54:48 +0200 |
parents | 6bf4675e2d96 |
children | 974ec36c562e |
line wrap: on
line diff
--- a/game/Engine.java Wed Feb 23 16:58:21 2011 +0200 +++ b/game/Engine.java Wed Feb 23 19:54:48 2011 +0200 @@ -63,8 +63,8 @@ Piece[][] board; public boolean flagGameOver; - - Piece currPiece; + + public Piece currPiece, nextPiece; int currX, currY, currPoint; int score; @@ -82,6 +82,7 @@ currY = boardMiddle; currPoint = 0; + nextPiece = new Piece(PieceType.ACTIVE); pieceFinishTurn(); flagGameOver = false; @@ -142,6 +143,20 @@ } } + public void pieceCreateNew() + { + currPiece = nextPiece; + nextPiece = new Piece(PieceType.ACTIVE); + } + + public void pieceSwapCurrent() + { + Piece tmp = currPiece; + currPiece = nextPiece; + nextPiece = tmp; + board[currX][currY] = currPiece; + } + public boolean pieceCheck(Piece piece) { if (piece == null) @@ -164,7 +179,7 @@ { // Start piece as first piece means game is starting pieceMoveTo(currPoint); - currPiece = new Piece(PieceType.ACTIVE); + pieceCreateNew(); board[currX][currY] = currPiece; return true; } @@ -213,6 +228,9 @@ public boolean keyPressed(KeyEvent e) { + if (flagGameOver) + return false; + switch (e.getKeyCode()) { case KeyEvent.VK_LEFT: @@ -356,6 +374,7 @@ // Background image, pieces g2.drawImage(lautaBGScaled, 0, 0, null); lauta.paint(g2, 90, 140, 65); + lauta.nextPiece.paint(g2, 830, 325, 90); widgets.paint(g2); // Scores, etc @@ -442,6 +461,7 @@ // Animate components lauta.animate(gameClock); + lauta.nextPiece.animate(gameClock); // Repaint with a frame limiter if (gameClock % 3 == 1) @@ -481,6 +501,7 @@ public void clicked() { + lauta.pieceSwapCurrent(); } } }