Sei sulla pagina 1di 14

package br.com.

game; import import import import import import import import import import import import import br.com.game.pecas.MatrizPosicoes; br.com.game.pecas.Pecas; android.app.AlertDialog; android.content.Context; android.graphics.BitmapFactory; android.graphics.Canvas; android.graphics.Color; android.os.Message; android.util.Log; android.view.MotionEvent; android.view.SurfaceHolder; android.view.SurfaceView; android.app.Activity;

/** * Esta a superfcie principal que lida com os eventos ontouch e desenha a * imagem na tela. */ public class GamePanel extends SurfaceView implements SurfaceHolder.Callback { private MThread thread; private Pecas peca1, peca2, peca3, peca4, peca5, peca6, peca7, peca8, ta buleiro, saida; private MatrizPosicoes matriz; Activity activity; public GamePanel(Context context) { super(context); getHolder().addCallback(this); matriz = new MatrizPosicoes(); tabuleiro = new Pecas(BitmapFactory.decodeResource(getResources( ), R.drawable.aaaaaac), 160, 180); // saida = new // Pecas(BitmapFactory.decodeResource(getResources(),R.drawable. saida), // 185, 335); selectJogo(1); thread = new MThread(getHolder(), this); // fazer o painel do jogo setFocusable = true para que ele possa lidar // com eventos setFocusable(true); } public void selectJogo(int nivel) { switch (nivel) { case 1: { peca1 = new Pecas(BitmapFactory.decodeResource(getResour ces(), R.drawable.teste1), 135, 55); matriz.setPosicao(peca1, 1, 2); matriz.setPosicao(peca1, 1, 3); matriz.setPosicao(peca1, 1, 4);

peca2 = new Pecas(BitmapFactory.decodeResource(getResour ces(), R.drawable.teste2), 235, 205); matriz.setPosicao(peca2, 4, 4); matriz.setPosicao(peca2, 4, 5); matriz.setPosicao(peca2, 4, 6); // peca2 = new // Pecas(BitmapFactory.decodeResource(getResources(),R.d rawable.imagem01), // 85, 55); peca3 = new Pecas(BitmapFactory.decodeResource(getResour ces(), R.drawable.imagem02a), 285, 105); matriz.setPosicao(peca3, 2, 6); peca4 = new Pecas(BitmapFactory.decodeResource(getResour ces(), R.drawable.imagem02b), 285, 155); matriz.setPosicao(peca4, 3, 6); peca5 = new Pecas(BitmapFactory.decodeResource(getResour ces(), R.drawable.imagem03b), 85, 155); matriz.setPosicao(peca5, 3, 2); peca6 = new Pecas(BitmapFactory.decodeResource(getResour ces(), R.drawable.imagem03a), 135, 155); matriz.setPosicao(peca6, 3, 3); peca7 = new Pecas(BitmapFactory.decodeResource(getResour ces(), R.drawable.imagem02c), 185, 105); matriz.setPosicao(peca7, 2, 4); peca8 = new Pecas(BitmapFactory.decodeResource(getResour ces(), R.drawable.imagem02d), 185, 155); matriz.setPosicao(peca8, 3, 4); break; } } } public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } public void surfaceCreated(SurfaceHolder holder) { // at this point the surface is created and // we can safely start the game loop thread.setRunning(true); thread.start(); }

public void surfaceDestroyed(SurfaceHolder holder) { // tell the thread to shut down and wait for it to finish // this is a clean shutdown boolean retry = true; while (retry) { try { thread.join(); retry = false; } catch (InterruptedException e) { // try again shutting down the thread } } } /* * public void movimentoHorizontalTresPosicoes(MotionEvent evento, Pecas * peca, Pecas peca2, Pecas peca3, int tipo) { int var = 100; int x= 0; int * * * * * * * * * * * * * * * * * * * * * * * * * * ) { * peca.setTouched(false); peca2.setTouched(false); peca3.setTouched(fal se); * * peca.setX(limiteEsquerda + var); peca2.setX(limiteEsquerda + var / 2) ; * peca3.setX(limiteEsquerda); * * } else if (evento.getX() > limiteDireita - 15) { peca.setTouched(fals e); * * * * * * peca2.setTouched(false); peca3.setTouched(false); peca.setX(limiteDireita); peca2.setX(limiteDireita - var / 2); peca3.setX(limiteDireita - var); } } else if (peca2.isTouched()) { if (evento.getX() < limiteEsquerda + 50+15) { if (peca3.getX() < limiteEsquerda + 15) { y = 0; int linhaP1 = matriz.getLinha(peca); int colunaP1 = matriz.getColuna(peca); int linhaP2 = matriz.getLinha(peca2); int colunaP2 = matriz.getColuna(peca2); int linhaP3 = matriz.getLinha(peca3); int colunaP3 = matriz.getColuna(peca3); int limiteDireita = matriz.verificaCaminhoHorizontalDireita(linhaP1, colunaP1); int limiteEsquerda = matriz.verificaCaminhoHorizontalEsquerda(linhaP3, colunaP3); if (evento.getAction() == MotionEvent.ACTION_DOWN) { peca2.handleActionDown((int) evento.getX(), (int) evento.getY()); if (peca2.isTouched()){ } else peca2.setTouched(false); } peca3.handleActionDown((int) evento.getX(), (int) evento.getY()); peca.handleActionDown((int) evento.getX(), (int) evento.getY()); if (evento.getAction() == MotionEvent.ACTION_MOVE) { if (peca.isTouched()) { if (evento.getX() < limiteEsquerda + var + 15

* peca.setTouched(false); peca2.setTouched(false); peca3.setTouched(fal se); * * * * * se); * * * peca.setX(limiteDireita + var / 2); peca2.setX(limiteDireita); * peca3.setX(limiteDireita - var / 2); } } } else if (peca3.isTouched() ) { * if (evento.getX() < limiteEsquerda + 15) { peca.setTouched(false); * peca2.setTouched(false); peca3.setTouched(false); * * peca.setX(limiteEsquerda + var); peca2.setX(limiteEsquerda + var / 2) ; * peca3.setX(limiteEsquerda); * * } else if (evento.getX() > limiteDireita - var - 15) { * peca.setTouched(false); peca2.setTouched(false); peca3.setTouched(fal se); * peca.setX(limiteDireita); peca2.setX(limiteDireita - var / 2); * peca3.setX(limiteDireita - var); } } if (peca.isTouched() * peca2.isTouched() peca3.isTouched()) { // PECA est sendo arrastada if * (peca.isTouched()) { peca.setX((int) evento.getX()); peca2.setX((int) * evento.getX() - var / 2); peca3.setX((int) evento.getX() - var); } el se * * * * * () * == MotionEvent.ACTION_UP) { int posicaoFinalX = * encontrarPosicaoX(evento); int posicaoFinalY = encontrarPosicaoY(even to); * * int posicaoInicialX = matriz.getColuna(peca); int posicaoInicialY = * matriz.getLinha(peca); * * int posicaoInicialX2 = matriz.getColuna(peca2); int posicaoInicialY2 = * matriz.getLinha(peca2); * * int posicaoInicialX3 = matriz.getColuna(peca3); int posicaoInicialY3 = * matriz.getLinha(peca3); * * if (peca.isTouched()) { peca.setX(matriz.getCoordenadaX(posicaoFinalX )); * peca2.setX(matriz.getCoordenadaX(posicaoFinalX - 1)); * peca3.setX(matriz.getCoordenadaX(posicaoFinalX - 2)); * * matriz.moverPeca(peca, posicaoInicialY, posicaoInicialX, posicaoFinal Y, * posicaoFinalX); matriz.moverPeca(peca2, posicaoInicialY2, * posicaoInicialX2, posicaoFinalY, posicaoFinalX - 1); if (peca3.isTouched()) { peca.setX((int) evento.getX() + var); peca2.setX((int) evento.getX() + var / 2); peca3.setX((int) evento.getX()); } else if (peca2.isTouched()) { peca.setX((int) evento.getX() + var / 2); peca2.setX((int) evento.getX()); peca3.setX((int) evento.getX() - var / 2); } } } if (evento.getAction peca.setX(limiteEsquerda + var / 2); peca2.setX(limiteEsquerda); peca2.setX(limiteEsquerda - var / 2); } } else if (evento.getX() > limiteDireita - 50-15) { if (peca.getX() > limiteDireita - 15) { peca.setTouched(false); peca2.setTouched(false); peca3.setTouched(fal

* * * * * * * * * * * * , * * * * * * * * * * * , * * * * * * * * * * * ,

matriz.moverPeca(peca3, posicaoInicialY3, posicaoInicialX3, posicaoFinalY, posicaoFinalX - 2); Log.d("Limite Direita", String.valueOf(limiteDireita)); Log.d("Limite Esquerda", String.valueOf(limiteEsquerda)); } else if (peca2.isTouched()) { if(evento.getX() < matriz.getCoordenadaX(1)+15) { peca.setX(matriz.getCoordenadaX(3)); peca2.setX(matriz.getCoordenadaX(2)); peca3.setX(matriz.getCoordenadaX(1)); matriz.moverPeca(peca, posicaoInicialY, posicaoInicialX,posicaoFinalY 3); matriz.moverPeca(peca2, posicaoInicialY2, posicaoInicialX2,posicaoFinalY, 2); matriz.moverPeca(peca3, posicaoInicialY3, posicaoInicialX3,posicaoFinalY, 1); } else if(evento.getX() > matriz.getCoordenadaX(6)-15) { peca.setX(matriz.getCoordenadaX(6)); peca2.setX(matriz.getCoordenadaX(5)); peca3.setX(matriz.getCoordenadaX(4)); matriz.moverPeca(peca, posicaoInicialY, posicaoInicialX,posicaoFinalY 6); matriz.moverPeca(peca2, posicaoInicialY2, posicaoInicialX2,posicaoFinalY, 5); matriz.moverPeca(peca3, posicaoInicialY3, posicaoInicialX3,posicaoFinalY, 4); }else { peca.setX(matriz.getCoordenadaX(posicaoFinalX + 1)); peca2.setX(matriz.getCoordenadaX(posicaoFinalX)); peca3.setX(matriz.getCoordenadaX(posicaoFinalX - 1)); matriz.moverPeca(peca, posicaoInicialY, posicaoInicialX,posicaoFinalY

* posicaoFinalX + 1); matriz.moverPeca(peca2, posicaoInicialY2, * posicaoInicialX2,posicaoFinalY, posicaoFinalX); matriz.moverPeca(peca 3, * posicaoInicialY3, posicaoInicialX3,posicaoFinalY, posicaoFinalX - 1); } * * * * * * * * * * * * * Y, * * * * posicaoFinalX + 2); matriz.moverPeca(peca2, posicaoInicialY2, posicaoInicialX2, posicaoFinalY, posicaoFinalX + 1); matriz.moverPeca(peca3, posicaoInicialY3, posicaoInicialX3, posicaoFinalY, posicaoFinalX); Log.d("Limite Direita", int a = posicaoFinalX + 1; int b = posicaoFinalX - 1; String aa = String.valueOf(a); String bb = String.valueOf(b); String cc = String.valueOf(posicaoFinalX); Log.d("posicaoFinalX+1", aa); Log.d("posicaoFinalX", cc); Log.d("posicaoFinalX-1", bb); Log.d("Limite Direita", String.valueOf(limiteDireita)); Log.d("Limite Esquerda", String.valueOf(limiteEsquerda)); } else if (peca3.isTouched()) { peca.setX(matriz.getCoordenadaX(posicaoFinalX + 2)); peca2.setX(matriz.getCoordenadaX(posicaoFinalX + 1)); peca3.setX(matriz.getCoordenadaX(posicaoFinalX)); matriz.moverPeca(peca, posicaoInicialY, posicaoInicialX, posicaoFinal

* * * * * se);

String.valueOf(limiteDireita)); Log.d("Limite Esquerda", String.valueOf(limiteEsquerda)); } if (peca.isTouched() peca2.isTouched() peca3.isTouched()) { peca.setTouched(false); peca2.setTouched(false); peca3.setTouched(fal

* } } Log.d("AAAAAA", matriz.comoEstaMatriz()); } */public void movimentoHorizontalTresPosicoes(MotionEvent evento, Pecas peca, int tipo) { int var = 100; int x = 0; int y = 0; int linha = matriz.getLinha(peca); int coluna = matriz.getColuna(peca) + 1; int limiteDireita = matriz.verificaCaminhoHorizontalDireita(linh a, coluna + 1); int limiteEsquerda = matriz.verificaCaminhoHorizontalEsquerda(li nha, coluna - 1); if (evento.getAction() == MotionEvent.ACTION_DOWN) { peca.handleActionDown((int) evento.getX(), (int) evento. getY()); } if (evento.getAction() == MotionEvent.ACTION_MOVE) { if (peca.isTouched()) { if (evento.getX() < peca.getX() - 50) { // peca esquerda selecionada if (evento.getX() < limiteEsquerda) { peca.setTouched(false); peca.setX(limiteEsquerda + 50); } else if (evento.getX() > limiteDireita - 100) { peca.setTouched(false); peca.setX(limiteDireita - 50); } } else if (evento.getX() > peca.getX() + 50) { // peca direita selecionada if (evento.getX() < limiteEsquerda + 100 ) { peca.setTouched(false); peca.setX(limiteEsquerda + 50); } else if (evento.getX() > limiteDireita ) { peca.setTouched(false); peca.setX(limiteDireita - 50); } } else { // peca meio selecionada if (evento.getX() < limiteEsquerda + 50) { peca.setTouched(false); peca.setX(limiteEsquerda + 50); } else if (evento.getX() > limiteDireita

- 50) { peca.setTouched(false); peca.setX(limiteDireita - 50); } } } if (peca.isTouched()) { peca.setX((int) evento.getX()); } } if (evento.getAction() == MotionEvent.ACTION_UP) { int pFinal = pFinal(peca); int posicaoFinalX = pFinal(peca); int posicaoFinalY = encontrarPosicaoY(evento); int posicaoInicialX = matriz.getColuna(peca); int posicaoInicialY = matriz.getLinha(peca);

Log.d("Limite Direita", String.valueOf(limiteDireita)); Log.d("Limite Esquerda", String.valueOf(limiteEsquerda)) ; Log.d("posicaoInicialX", String.valueOf(posicaoFinalX)); Log.d("posicaoInicialY", String.valueOf(posicaoInicialY) ); Log.d("posicaoFinalX", String.valueOf(posicaoFinalX)); Log.d("posicaoFinalY", String.valueOf(posicaoFinalY)); if (peca.isTouched()) { if (posicaoFinalX > posicaoInicialX) { matriz.moverPeca(peca, posicaoInicialY, posicaoInicialX+1,posicaoFinalY,posicaoFinalX+1); matriz.moverPeca(peca, posicaoInicialY, posicaoInicialX,posicaoFinalY,posicaoFinalX); matriz.moverPeca(peca, posicaoInicialY, posicaoInicialX-1,posicaoFinalY,posicaoFinalX-1); } else if (posicaoFinalX < posicaoInicialX) { matriz.moverPeca(peca, posicaoInicialY, posicaoInicialX-1,posicaoFinalY,posicaoFinalX-1); matriz.moverPeca(peca, posicaoInicialY, posicaoInicialX,posicaoFinalY,posicaoFinalX); matriz.moverPeca(peca, posicaoInicialY, posicaoInicialX+1,posicaoFinalY,posicaoFinalX+1); } peca.setX(matriz.getCoordenadaX(pFinal));

} if (peca.isTouched()) { peca.setTouched(false);

} } // Log.d("AAAAAA", matriz.comoEstaMatriz()); } public void movimentoHorizontal(MotionEvent evento, Pecas peca, Pecas peca2, int tipo) { int var = 0; if (tipo == 1) { var = 50; } int linhaP1 = matriz.getLinha(peca); int colunaP1 = matriz.getColuna(peca); int linhaP2 = matriz.getLinha(peca2); int colunaP2 = matriz.getColuna(peca2); if (evento.getAction() == MotionEvent.ACTION_DOWN) { peca.handleActionDown((int) evento.getX(), (int) evento. getY()); peca2.handleActionDown((int) evento.getX(), (int) evento .getY()); } if (evento.getAction() == MotionEvent.ACTION_MOVE) { int limiteDireita = matriz.verificaCaminhoHorizontalDire ita( linhaP1, colunaP1); int limiteEsquerda = matriz.verificaCaminhoHorizontalEsq uerda( linhaP2, colunaP2); if (peca.isTouched()) { if (evento.getX() < limiteEsquerda + var) { peca.setTouched(false); peca2.setTouched(false); peca.setX(limiteEsquerda + var); peca2.setX(limiteEsquerda); } else if (evento.getX() > limiteDireita) { peca.setTouched(false); peca2.setTouched(false); peca.setX(limiteDireita); peca2.setX(limiteDireita - var); } } else if (peca2.isTouched()) { if (evento.getX() < limiteEsquerda) { peca.setTouched(false); peca2.setTouched(false); peca.setX(limiteEsquerda + var); peca2.setX(limiteEsquerda); } else if (evento.getX() > limiteDireita - var) { peca.setTouched(false); peca2.setTouched(false); peca.setX(limiteDireita); peca2.setX(limiteDireita - var);

} } if (peca.isTouched() peca2.isTouched()) { // PECA est sendo arrastada if (peca.isTouched()) { peca.setX((int) evento.getX()); peca2.setX((int) evento.getX() - var); } if (peca2.isTouched()) { peca.setX((int) evento.getX() + var); peca2.setX((int) evento.getX()); } } } if (evento.getAction() == MotionEvent.ACTION_UP) { int posicaoFinalX = encontrarPosicaoX(evento); int posicaoFinalY = encontrarPosicaoY(evento); int posicaoInicialX = matriz.getColuna(peca); int posicaoInicialY = matriz.getLinha(peca); int posicaoInicialX2 = matriz.getColuna(peca2); int posicaoInicialY2 = matriz.getLinha(peca2); if(posicaoInicialX < posicaoFinalX){ if (peca.isTouched()) { peca.setX(matriz.getCoordenadaX(posicaoFinalX)); peca2.setX(matriz.getCoordenadaX(posicaoFinalX 1)); matriz.moverPeca(peca, posicaoInicialY, posicaoI nicialX, posicaoFinalY, posicaoFinalX); matriz.moverPeca(peca2, posicaoInicialY2, posica oInicialX2, posicaoFinalY, posicaoFinalX - 1); } else if (peca2.isTouched()) { peca.setX(matriz.getCoordenadaX(posicaoFinalX + 1)); peca2.setX(matriz.getCoordenadaX(posicaoFinalX)) ; matriz.moverPeca(peca, posicaoInicialY, posicaoI nicialX, posicaoFinalY, posicaoFinalX + 1); matriz.moverPeca(peca2, posicaoInicialY2, posica oInicialX2, posicaoFinalY, posicaoFinalX); } }else{ if (peca.isTouched()) { peca.setX(matriz.getCoordenadaX(posicaoF inalX)); peca2.setX(matriz.getCoordenadaX(posicao FinalX - 1)); matriz.moverPeca(peca2, posicaoInicialY2 , posicaoInicialX2, posicaoFinalY, posicaoFinalX - 1); matriz.moverPeca(peca, posicaoInicialY, posicaoInicialX, posicaoFinalY, posicaoFinalX);

} else if (peca2.isTouched()) { peca.setX(matriz.getCoordenadaX(posicaoF inalX + 1)); peca2.setX(matriz.getCoordenadaX(posicao FinalX)); matriz.moverPeca(peca2, posicaoInicialY2 , posicaoInicialX2, posicaoFinalY, posicaoFinalX); matriz.moverPeca(peca, posicaoInicialY, posicaoInicialX, posicaoFinalY, posicaoFinalX + 1); } } if (peca.isTouched() peca2.isTouched()) { peca.setTouched(false); peca2.setTouched(false); } } Log.d("AAAAAA", matriz.comoEstaMatriz1()); Log.d("BBBBBB", matriz.comoEstaMatriz2()); } public void movimentoVertical(MotionEvent evento, Pecas peca, Pecas peca 2, int tipo) { int var = 50; if (tipo == 1) { var = 50; } int linhaP1 = matriz.getLinha(peca); int colunaP1 = matriz.getColuna(peca); int linhaP2 = matriz.getLinha(peca2); int colunaP2 = matriz.getColuna(peca2); if (evento.getAction() == MotionEvent.ACTION_DOWN) { peca.handleActionDown((int) evento.getY(), (int) evento. getY()); peca2.handleActionDown((int) evento.getY(), (int) evento .getY()); } if (evento.getAction() == MotionEvent.ACTION_MOVE) { int limiteAbaixo = matriz.verificarCaminhoVerticalAbaixo (linhaP1,colunaP1); int limiteAcima = matriz.verificarCaminhoVerticalAcima(l inhaP2,colunaP2); if (peca.isTouched()) { if (evento.getY() < limiteAcima + var) { peca.setTouched(false); peca2.setTouched(false); peca.setY(limiteAcima + var); peca2.setY(limiteAcima); } else if (evento.getY() > limiteAbaixo) { peca.setTouched(false); peca2.setTouched(false);

peca.setY(limiteAbaixo); peca2.setY(limiteAbaixo - var); } } else if (peca2.isTouched()) { if (evento.getY() < limiteAcima) { peca.setTouched(false); peca2.setTouched(false); peca.setY(limiteAcima + var); peca2.setY(limiteAcima); } else if (evento.getY() > limiteAbaixo - var) { peca.setTouched(false); peca2.setTouched(false); peca.setY(limiteAbaixo); peca2.setY(limiteAbaixo - var); } } if (peca.isTouched() peca2.isTouched()) { // PECA est sendo arrastada if (peca.isTouched()) { peca.setY((int) evento.getY()); peca2.setY((int) evento.getY() - var); } if (peca2.isTouched()) { peca.setY((int) evento.getY() + var); peca2.setY((int) evento.getY()); } } } if (evento.getAction() == MotionEvent.ACTION_UP) { int posicaoFinalX = encontrarPosicaoX(evento); int posicaoFinalY = encontrarPosicaoY(evento); int posicaoInicialX = matriz.getColuna(peca); int posicaoInicialY = matriz.getLinha(peca); int posicaoInicialX2 = matriz.getColuna(peca2); int posicaoInicialY2 = matriz.getLinha(peca2); if(posicaoFinalY > posicaoInicialY) { if (peca.isTouched()) { peca.setY(matriz.getCoordenadaY(posicaoFinalY)); peca2.setY(matriz.getCoordenadaY(posicaoFinalY 1)); matriz.moverPeca(peca, posicaoInicialY, posicaoI nicialX, posicaoFinalY, posicaoFinalX); matriz.moverPeca(peca2, posicaoInicialY2, posica oInicialX2, posicaoFinalY-1, posicaoFinalX); } else if (peca2.isTouched()) { peca.setY(matriz.getCoordenadaY(posicaoFinalY + 1)); peca2.setY(matriz.getCoordenadaY(posicaoFinalY)) ; matriz.moverPeca(peca, posicaoInicialY, posicaoI nicialX, posicaoFinalY+1, posicaoFinalX); matriz.moverPeca(peca2, posicaoInicialY2, posica

oInicialX2, posicaoFinalY, posicaoFinalX); } }else{ if (peca.isTouched()) { peca.setY(matriz.getCoor denadaY(posicaoFinalY)); peca2.setY(matriz.getCoo rdenadaY(posicaoFinalY - 1)); matriz.moverPeca(peca2, posicaoInicialY2, posicaoInicialX2, posicaoFinalY-1, posicaoFinalX); matriz.moverPeca(peca, p osicaoInicialY, posicaoInicialX, posicaoFinalY, posicaoFinalX); } else if (peca2.isTouched()) { peca.setY(matriz.getCoor denadaY(posicaoFinalY + 1)); peca2.setY(matriz.getCoo rdenadaY(posicaoFinalY)); matriz.moverPeca(peca2, posicaoInicialY2, posicaoInicialX2, posicaoFinalY, posicaoFinalX); matriz.moverPeca(peca, p osicaoInicialY, posicaoInicialX, posicaoFinalY+1, posicaoFinalX); } } if (peca.isTouched() peca2.isTouched()) { peca.setTouched(false); peca2.setTouched(false); } } } public int pFinal(Pecas peca) { int posicaoX = 0; if (peca.getX() <= 60) { posicaoX = 1; } else if (peca.getX() > posicaoX = 2; } else if (peca.getX() > posicaoX = 3; } else if (peca.getX() > posicaoX = 4; } else if (peca.getX() > posicaoX = 5; } else if (peca.getX() > posicaoX = 6; } return posicaoX; }

60 && peca.getX() <= 110) { 110 && peca.getX() <= 160) { 160 && peca.getX() <= 210) { 210 && peca.getX() <= 260) { 260) {

public int encontrarPosicaoX(MotionEvent evento) { int posicaoX = 0; if (evento.getX() <= 60) { posicaoX = 1; } else if (evento.getX() > 60 && evento.getX() <= 110) { posicaoX = 2; } else if (evento.getX() > 110 && evento.getX() <= 160) { posicaoX = 3;

} else if (evento.getX() > 160 && evento.getX() <= 210) { posicaoX = 4; } else if (evento.getX() > 210 && evento.getX() <= 260) { posicaoX = 5; } else if (evento.getX() > 260) { posicaoX = 6; } return posicaoX; } public int encontrarPosicaoY(MotionEvent evento) { int posicaoY = 0; if (evento.getY() <= 80) { posicaoY = 1; } else if (evento.getY() > 80 && evento.getY() <= 130) { posicaoY = 2; } else if (evento.getY() > 130 && evento.getY() <= 180) { posicaoY = 3; } else if (evento.getY() > 180 && evento.getY() <= 230) { posicaoY = 4; } else if (evento.getY() > 230 && evento.getY() <= 280) { posicaoY = 5; } else if (evento.getY() > 280) { posicaoY = 6; } return posicaoY; } @Override public boolean onTouchEvent(MotionEvent evento) { peca1.handleActionDown((int) evento.getX(), (int) evento.getY()) ; peca2.handleActionDown((int) evento.getX(), (int) evento.getY()) ; peca3.handleActionDown((int) evento.getX(), (int) evento.getY()) ; peca4.handleActionDown((int) evento.getX(), (int) evento.getY()) ; peca5.handleActionDown((int) evento.getX(), (int) evento.getY()) ; peca6.handleActionDown((int) evento.getX(), (int) evento.getY()) ; peca7.handleActionDown((int) evento.getX(), (int) evento.getY()) ; peca8.handleActionDown((int) evento.getX(), (int) evento.getY()) ; /* * PARA O MOVIMENTO DAS PEAS DE DUAS POSIES FUNCIONAR NECESSRIO * QUE: * NA HORIZONTAL: PECA direita da PECA2 * NA VERTICAL: PECA abaixo da PECA2 * * PARA CHAMAR O MTODO DE MOVIMENTO DEVE OBEDEER ESSA ORDEM. */ if (peca1.isTouched()) { movimentoHorizontalTresPosicoes(evento, peca1, 1);

}else if (peca2.isTouched()) { movimentoHorizontalTresPosicoes(evento, peca2, 1); } else if (peca3.isTouched() peca4.isTouched()) {

movimentoVertical(evento, peca4, peca3, 1); } else if (peca5.isTouched() peca6.isTouched()) {

movimentoHorizontal(evento, peca6, peca5, 1); }else if (peca7.isTouched() peca8.isTouched()) { movimentoVertical(evento, peca8, peca7, 1); } if (peca6.getX() == 285){ AlertDialog.Builder mensagem = new AlertDialog.Builder(a ctivity); mensagem.setMessage("Fim do Nvel!!!"); mensagem.setNeutralButton("OK", null); mensagem.show(); } return true; } public void onDraw(Canvas canvas) { canvas.drawColor(Color.BLACK); tabuleiro.draw(canvas); // saida.draw(canvas); peca1.draw(canvas); peca2.draw(canvas); peca3.draw(canvas); peca4.draw(canvas); peca5.draw(canvas); peca6.draw(canvas); peca7.draw(canvas); peca8.draw(canvas); // peca5.draw(canvas); } }

Potrebbero piacerti anche