Ir ao conteúdo
  • Cadastre-se

xFaaawkes

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

0
  1. Fala galera, Estou fazendo um trabalho de faculdade e estou trancado em uma quesito do trabalho que é adicionar obstáculos moveis e fixos na tela do jogo e que interagem com o usuário! Gostaria de saber se alguém tem alguma sugestão para fazer aparecer import java.awt.Color; import java.awt.Graphics; import javax.swing.JPanel; import javax.swing.JFrame; import java.awt.event.KeyListener; import java.awt.event.KeyEvent; import java.awt.Dimension; import java.util.Random; public class GameWindow extends JPanel { public static void main(String args[]) { GameWindow g = new GameWindow(); Random gerador = new Random(); int tempo = 0; int dx = 200; int dy = 200; int ox,oy,ry,rx,py,px,ex,ey; int oxx= 280,oxy = 280; boolean tesouro = false; boolean tesouro2 = false; boolean tesouro3 = false; boolean tesouro4 = false; // gera as coord do ouro ox = gerador.nextInt(0 + 200); oy = ox; // gera as coord do rubi rx = gerador.nextInt(0 + 200); ry = rx; // gera as coord da perola px = gerador.nextInt(0 + 200); py = px; // gera as coord da esmeralda ex = gerador.nextInt(0 + 200); ey = ex; //posiciona o elementos na tela g.setOuro(ox, oy); g.setRubi(rx, ry); g.setPerola(px, py); g.setEsmeralda(ex,ey); g.setOxi(280,280); //ate final dos tempos while (tempo < 300) { g.desenha(); if (g.apertouEsquerda()) { dx -= 4; } else if (g.apertouDireita()) { dx += 4; } else if (g.apertouCima()) { dy -= 4; } else if (g.apertouBaixo()) { dy += 4; } tempo++; // posiciona o mergulhador no pixel dx e dy da tela g.setDiver(dx, dy); System.out.println(tempo); // Compara se os tesouros foram pegos if (dx >= ox && dy <= oy && dx <= ox+17 && dy >= oy-20){ tesouro = true; g.setOuro(400, 400); } if (dx >= rx && dy <= ry && dx <= rx+17 && dy >= ry-20){ tesouro2 = true; g.setRubi(400, 400); } if (dx >= px && dy <= py && dx <= px+17 && dy >= py-20){ tesouro3 = true; g.setPerola(400, 400); } if (dx >= ex && dy <= ey && dx <= ex+20 && dy >= ey-20){ tesouro4 = true; g.setEsmeralda(400,400); } //CONTROLA O OXIGENIO if (dx >= oxx && dy <= oxy && dx <= oxx+17 && dy >= oxy-20){ tempo = 0; g.setOxi(400,400); } //Se tudo for pego mostra WIN if ((tesouro == true)&&(tesouro2 == true)&&(tesouro3 == true)&&(tesouro4 == true)){ g.ganhou(); g.desenha(); tempo = 300; } //Controla o tempo de jogo if (tempo == 299) { g.gameOver(); g.desenha(); tempo++; } } // Atributo importante que determina o tamanho de cada pixel. } private final int pt = 2; private int[][] game = { {1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1}, {1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0}, {1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0}, {1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0}, {1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1} }; int[][] over = { {1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1}, {1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1}, {1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0}, {1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1}, {1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1} }; int[][] ouro = { {1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1}, {1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1}, {1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1}, {1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1}, {1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1} }; int[][] rubi ={ { 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1}, { 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1}, { 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1}, { 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1}, { 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1}, { 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1}, { 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1} }; int[][] perola={ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1}, { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1}, { 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1}, { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1}, { 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1}, { 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1}, { 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1} }; int[][] esmeralda={ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1}, { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1}, { 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1}, { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1}, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1}, { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1}, { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1} }; int[][] diver = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0} }; int[][] win = { {1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1}, {1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1}, {1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1}, {1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1}, {1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1}, {0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1} }; int[][] oxigenio = { {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, }; //x e y do mergulhador private int x; private int y; //x e y do ouro private int ox; private int oy; //x e y do rubi private int rx; private int ry; //x e y da perola private int px; private int py; //x e y da esmeralda private int ex; private int ey; // x e y do oxigenio private int oxx; private int oxy; private final int boardWidth; private final int boardHeight; //boleana para indicar se a tecla SETA esquerda foi pressionada private boolean esquerda = false; //boleana para indicar se a tecla SETA direita foi pressionada private boolean direita = false; //boleana para indicar se a tecla SETA cima foi pressionada private boolean cima = false; //boleana para indicar se a tecla SETA baixo foi pressionada private boolean baixo = false; //se true deve mostrar a mensagem game over na tela private boolean gameOver = false; //se true deve mostrar a mensgaem you win na tela private boolean ganhou = false; // variável que carrega o private JFrame frame = new JFrame("CaveDiving"); /* Deve indicar a largura últil em pixels da janela. @[member="Return"] um inteiro que é a quantidade de casas (horizontais) da janela. */ public int getBoardWidth() { return boardWidth; } /** * Deve indicar a altura últil em pixels da janela. * * @[member="Return"] um inteiro que é a quantidade de casas verticais (linhas) da * janela. */ public int getBoardHeight() { return boardHeight; } /** * Desenha na tela o jogo e fica para por 80ms. */ public void desenha() { frame.repaint(); try { Thread.sleep(80); } catch (final java.lang.InterruptedException e) { } } /** * Desenha uma matriz qualquer passada como parâmetro. * * @param x coluna na qual o objeto deve ser desenhado. * @param y linha na qual o objeto deve ser desenhado. * @param m matriz com um mapa de pixels a serem desenhados. * @param g objeto gráfico usado para desenhar na tela. */ private void drawMatrix(final int m[][], final int x, final int y, final Graphics g) { for (int i = 0; i < m[0].length; i++) { for (int j = 0; j < m.length; j++) { if (m[j]<i> == 1) { g.drawOval((x + i) * pt, (y + j) * pt, pt, pt); g.fillOval((x + i) * pt, (y + j) * pt, pt, pt); } } } } /** * Posiciona o mergulhador em uma posiçõa x e y da tela. * * Exemplo: * <pre> * {@code * GameWindow g = new GameWindow(); * //coloca o mergulhador na posição 100, 100 da tela * g.setDiver(100,100) * //atualiza a tela e mostra o mergulhador na nova posição * g.desenha(); * } * </pre> * * @param x coluna posição horizontal do mergulhador. * @param y linha posição vertical do mergulhador. */ public void setDiver(int x, int y) { this.x = x; this.y = y; } /** * Posiciona o ouro na posiçõa x e y da tela. * * Exemplo: * <pre> * {@code * GameWindow g = new GameWindow(); * //coloca o mergulhador na posição 40, 40 da tela * g.setOuro(40,40) * //atualiza a tela e mostra o mergulhador na nova posição * g.desenha(); * } * </pre> * * @param x coluna posição horizontal do ouro. * @param y linha posição vertical do ouro. */ public void setOuro(int x, int y) { this.ox = x; this.oy = y; } public void setRubi(int x, int y) { this.rx = x; this.ry = y; } public void setPerola(int x, int y) { this.px = x; this.py = y; } public void setEsmeralda(int x, int y) { this.ex = x; this.ey = y; } public void setOxi(int x, int y) { this.oxx = x; this.oxy = y; } /** * Desenha este componente, método chamado pelo próprio java. * */ public void paintComponent(final Graphics g) { final int width = getWidth(); final int height = getHeight(); g.setColor(Color.black); g.setColor(Color.black); if (gameOver) { drawMatrix(game, 120, 120, g); drawMatrix(over, 140, 140, g); } if (ganhou) { drawMatrix(win, 150, 150, g); } //IMPRIME NA TELA OS ELEMENTOS E SUAS CORES drawMatrix(diver, x, y, g); g.setColor(Color.yellow); drawMatrix(ouro, ox, oy, g); g.setColor(Color.red); drawMatrix(rubi, rx, ry, g); g.setColor(Color.orange); drawMatrix(perola, px, py, g); g.setColor(Color.GREEN); drawMatrix(esmeralda, ex, ey, g); g.setColor(Color.cyan); drawMatrix(oxigenio, oxx, oxy, g); g.setColor(Color.lightGray); for (int i = 0; i < height; i++) { g.drawLine(0, i * pt, boardWidth * pt, i * pt); } for (int i = 0; i < width; i++) { g.drawLine(i * pt, 0, i * pt, boardHeight * pt); } } /** * Mostra a mensagem game over na tela. * * Exemplo: * <pre> * {@code * GameWindow g = new GameWindow(); * //ativa a mensagem "GAME OVER" * g.gameOver(); * //deve chamar desenha para atualizar a tela e mostrar "GAME OVER" * g.desenha(); * } * </pre> */ public void gameOver() { gameOver = true; } /** * Desenha uma mensagem de WIN da proxima vez que chamar desenha(). * * Exemplo: * <pre> * {@code * GameWindow g = new GameWindow(); * //ativa a mensagem "WIN" * g.ganhou(); * //deve chamar desenha para atualizar a tela e mostrar "WIN" * g.desenha(); * } * </pre> */ public void ganhou() { ganhou = true; } /** * Retorna verdadeiro se a seta para a esquerda estiver sendo pressionada * pelo usuário. * * Exemplo: * <pre> * {@code * GameWindow g = new GameWindow(); * while(true){ * if(g.apertouEsquerda()){ * System.out.println("Apertou a SETA ESQUERDA!!!"); * } * } * } * </pre> * * @[member="Return"] verdadeiro (true) caso a seta para a esquerda estiver sendo * precionada, falso (false) caso contrário. */ public boolean apertouEsquerda() { return esquerda; } /** * Retorna verdadeiro se a seta para a direita estiver sendo pressionada * pelo usuário. * * Exemplo: * <pre> * {@code * GameWindow g = new GameWindow(); * while(true){ * if(g.apertouDireita()){ * System.out.println("Apertou a SETA DIREITA!!!"); * } * } * } * </pre> * * @[member="Return"] verdadeiro (true) caso a seta para a direita estiver sendo * precionada, falso (false) caso contr?rio. */ public boolean apertouDireita() { return direita; } /** * Retorna verdadeiro se a seta para a cima estiver sendo pressionada pelo * usuário. * * Exemplo: * <pre> * {@code * GameWindow g = new GameWindow(); * while(true){ * if(g.apertouCima()){ * System.out.println("Apertou a SETA CIMA!!!"); * } * } * } * </pre> * * @[member="Return"] verdadeiro (true) caso a seta para a cima estiver sendo * precionada, falso (false) caso contr?rio. */ public boolean apertouCima() { return cima; } /** * Retorna verdadeiro se a seta para a baixo estiver sendo pressionada pelo * usuário. * * Exemplo: * <pre> * {@code * GameWindow g = new GameWindow(); * while(true){ * if(g.apertouBaixo()){ * System.out.println("Apertou a SETA BAIXO!!!"); * } * } * } * </pre> * * @[member="Return"] verdadeiro (true) caso a seta para a baixo estiver sendo * precionada, falso (false) caso contr?rio. */ public boolean apertouBaixo() { return baixo; } /** * Construtor, inicia a janela do jogo. Este método é chamado quando criamos * o objeto com new. * * Exemplo: * <pre> * {@code * //para criar a janela use * GameWindow g = new GameWindow(); * } * </pre> * */ public GameWindow() { boardWidth = 300; boardHeight = 300; setPreferredSize(new Dimension(boardWidth * pt, boardHeight * pt)); frame = new JFrame("CaveDive - By: Igor & Gustavo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(this); frame.pack(); frame.setResizable(false); frame.setVisible(true); frame.setBackground(Color.WHITE); frame.addKeyListener(new KeyListener() { public void keyPressed(final KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_RIGHT) { direita = true; } else if (e.getKeyCode() == KeyEvent.VK_LEFT) { esquerda = true; } else if (e.getKeyCode() == KeyEvent.VK_UP) { cima = true; } else if (e.getKeyCode() == KeyEvent.VK_DOWN) { baixo = true; } } public void keyReleased(final KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_RIGHT) { direita = false; } else if (e.getKeyCode() == KeyEvent.VK_LEFT) { esquerda = false; } else if (e.getKeyCode() == KeyEvent.VK_UP) { cima = false; } else if (e.getKeyCode() == KeyEvent.VK_DOWN) { baixo = false; } } public void keyTyped(final KeyEvent e) { } }); } void gameBau() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!