Ir ao conteúdo
  • Cadastre-se

xFaaawkes

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

posts postados por xFaaawkes

  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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!