sexta-feira, 31 de maio de 2013

JAVA GAMES 2D::Movimentando Objetos::09

Olá pessoal!

Nesse tutorial de hoje, irei mostrar como fazer para um objeto se mover sozinho nos nosso games! existe várias formas de se fazer isso, e dependendo do que se deseja o código pode vir a se tornar complexo, usarei como exemplo o código do tutorial anterior (Animando Sprites), então sugiro que faça o seguinte, criem um novo pacote chamado tutorial9 dentro do nosso projeto JAVAGAMES2D, cole nele tudo que está no pacote tutorial8 e vamos fazer umas pequenas modificações tal como a do código abaixo:
1:  import java.awt.*;  
2:  import java.awt.image.BufferedImage;  
3:  import java.io.File;  
4:  import javax.swing.ImageIcon;  
5:  import javax.swing.JFrame;  
6:  public class Game extends JFrame {  
7:   BufferedImage backBuffer;  
8:   int FPS = 30;  
9:   int janelaW = 500;  
10:   int janelaH = 500;  
11:   //EU REMOVI O VILÃO 2 QUE TINHA AQUI...  
12:   //E MUDEI A IMAGEM DO FUNDO, MAS ISSO É UM MERO DETALHE!!!  
13:   Sprite vilao = new Sprite(3, 200, 300);  
14:   ImageIcon fundo = new ImageIcon("src/tutor9/fundo.jpg");  
15:   boolean vai = true; //ESSA VARIÁVEL PODERIA ESTAR NA CLASSE Sprite  
16:   boolean volta = false; //ESSA VARIÁVEL PODERIA ESTAR NA CLASSE Sprite  
17:   //TENTE ENTENDER O CÓDIGO ABAIXO:  
18:   //ESSE MÉTODO SERÁ RESPONSÁVEL POR FAZER O OBJETO IR E VOLTAR  
19:   //ESSE MÉTODO TAMBÉM PODERIA ESTAR NA CLASSE SPRITE!!!  
20:   //DEPENDENDO DO QUE SE PRETENDER FAZER, ESSE MÉTODO PODERIA SER MAIS COMPLEXO!!  
21:   public void mover(){  
22:   if(vai){ vilao.x += 5; }  
23:   if(volta){ vilao.x -= 5; }  
24:   if(vilao.x>400){ vai = false; volta = true; }  
25:   if(vilao.x<100){ vai = true; volta = false; }  
26:   }  
27:   //AGORA DEVEMOS CHAMAR ESSE MÉTODO AQUI  
28:   //PARA QUE ELE SEJA EXECUTADO O TEMPO INTEIRO  
29:   public void atualizar() {  
30:   mover();//AQUI CHAMAMOS O MÉTODO MOVER!  
31:   }  
32:   public void desenharGraficos() {  
33:   Graphics g = getGraphics(); //ISSO JÁ ESTAVA AQUI  
34:   Graphics bbg = backBuffer.getGraphics();//ISSO TAMBÉM JÁ ESTAVA AQUI...  
35:   //AQUI VAMOS MANDAR DESENHAR ALGUNS IMAGENS NA TELA  
36:   bbg.drawImage(fundo.getImage(),0,0,500,500,this);//QUI DESENHAMOS O FUNDO  
37:   //AS DIMENSÕES ORIGINAIS DO FUNDO SÃO: 500X500 QUE É O TAMANHO DA NOSSA TELA!  
38:   bbg.drawImage(vilao.cenas[vilao.cena].getImage(), vilao.x, vilao.y,this);  
39:   vilao.animar();  
40:   //==================================================================================  
41:   g.drawImage(backBuffer, 0, 0, this);//OBS: ISSO DEVE FICAR SEMPRE NO FINAL!  
42:   }  
43:   public void inicializar() {  
44:   setTitle("Titulo do Jogo!");  
45:   setSize(janelaW, janelaH);  
46:   setResizable(false);  
47:   setDefaultCloseOperation(EXIT_ON_CLOSE);  
48:   setLayout(null);  
49:   setVisible(true);  
50:   backBuffer = new BufferedImage(janelaW, janelaH, BufferedImage.TYPE_INT_RGB);  
51:   vilao.cenas[0] = new ImageIcon("src/tutor8/s1.gif");  
52:   vilao.cenas[1] = new ImageIcon("src/tutor8/s2.gif");  
53:   vilao.cenas[2] = new ImageIcon("src/tutor8/s3.gif");  
54:   }  
55:   public void run() {  
56:   inicializar();  
57:   while (true) {  
58:    atualizar();  
59:    desenharGraficos();  
60:    try {  
61:     Thread.sleep(1000/FPS);  
62:    } catch (Exception e) {  
63:     System.out.println("Thread interrompida!");  
64:    }  
65:   }  
66:   }  
67:   public static void main(String[] args) {  
68:   Game game = new Game();  
69:   game.run();  
70:   }  
71:  }  
Muito bem.... então basicamente criamos um método que modifica os valores das coordenadas X e Y da nossa Sprite! dependendo do que se pretende fazer o método poderia ficar mais complexo! você iria detalhar como ele iria se comportar! é um exemplo bem básico (ele vai e volta!!!)... mas já dá para  compreender como funciona + ou -, e começar a terem ideias (implementem também e compartilhem o link nos comentários)!!!
Olhe como ficou o meu:
Viu como é simples! Até o próximo tutorial!

Nenhum comentário:

Postar um comentário