JAVA GAMES 2D::Movimentando Objetos::09
"
Olá pessoal!
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:
import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import javax.swing.ImageIcon; import javax.swing.JFrame; public class Game extends JFrame { BufferedImage backBuffer; int FPS = 30; int janelaW = 500; int janelaH = 500; //EU REMOVI O VILÃO 2 QUE TINHA AQUI... //E MUDEI A IMAGEM DO FUNDO, MAS ISSO É UM MERO DETALHE!!! Sprite vilao = new Sprite(3, 200, 300); ImageIcon fundo = new ImageIcon("src/tutor9/fundo.jpg"); boolean vai = true; //ESSA VARIÁVEL PODERIA ESTAR NA CLASSE Sprite boolean volta = false; //ESSA VARIÁVEL PODERIA ESTAR NA CLASSE Sprite //TENTE ENTENDER O CÓDIGO ABAIXO: //ESSE MÉTODO SERÁ RESPONSÁVEL POR FAZER O OBJETO IR E VOLTAR //ESSE MÉTODO TAMBÉM PODERIA ESTAR NA CLASSE SPRITE!!! //DEPENDENDO DO QUE SE PRETENDER FAZER, ESSE MÉTODO PODERIA SER MAIS COMPLEXO!! public void mover(){ if(vai){ vilao.x += 5; } if(volta){ vilao.x -= 5; } if(vilao.x>400){ vai = false; volta = true; } if(vilao.x<100){ vai = true; volta = false; } } //AGORA DEVEMOS CHAMAR ESSE MÉTODO AQUI //PARA QUE ELE SEJA EXECUTADO O TEMPO INTEIRO public void atualizar() { mover();//AQUI CHAMAMOS O MÉTODO MOVER! } public void desenharGraficos() { Graphics g = getGraphics(); //ISSO JÁ ESTAVA AQUI Graphics bbg = backBuffer.getGraphics();//ISSO TAMBÉM JÁ ESTAVA AQUI... //AQUI VAMOS MANDAR DESENHAR ALGUNS IMAGENS NA TELA bbg.drawImage(fundo.getImage(),0,0,500,500,this);//QUI DESENHAMOS O FUNDO //AS DIMENSÕES ORIGINAIS DO FUNDO SÃO: 500X500 QUE É O TAMANHO DA NOSSA TELA! bbg.drawImage(vilao.cenas[vilao.cena].getImage(), vilao.x, vilao.y,this); vilao.animar(); //================================================================================== g.drawImage(backBuffer, 0, 0, this);//OBS: ISSO DEVE FICAR SEMPRE NO FINAL! } public void inicializar() { setTitle("Titulo do Jogo!"); setSize(janelaW, janelaH); setResizable(false); setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(null); setVisible(true); backBuffer = new BufferedImage(janelaW, janelaH, BufferedImage.TYPE_INT_RGB); vilao.cenas[0] = new ImageIcon("src/tutor8/s1.gif"); vilao.cenas[1] = new ImageIcon("src/tutor8/s2.gif"); vilao.cenas[2] = new ImageIcon("src/tutor8/s3.gif"); } public void run() { inicializar(); while (true) { atualizar(); desenharGraficos(); try { Thread.sleep(1000/FPS); } catch (Exception e) { System.out.println("Thread interrompida!"); } } } public static void main(String[] args) { Game game = new Game(); game.run(); } }
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!
\_(^_^)_/ Comentários em baixo \_(^_^)_/
"
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:
import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import javax.swing.ImageIcon; import javax.swing.JFrame; public class Game extends JFrame { BufferedImage backBuffer; int FPS = 30; int janelaW = 500; int janelaH = 500; //EU REMOVI O VILÃO 2 QUE TINHA AQUI... //E MUDEI A IMAGEM DO FUNDO, MAS ISSO É UM MERO DETALHE!!! Sprite vilao = new Sprite(3, 200, 300); ImageIcon fundo = new ImageIcon("src/tutor9/fundo.jpg"); boolean vai = true; //ESSA VARIÁVEL PODERIA ESTAR NA CLASSE Sprite boolean volta = false; //ESSA VARIÁVEL PODERIA ESTAR NA CLASSE Sprite //TENTE ENTENDER O CÓDIGO ABAIXO: //ESSE MÉTODO SERÁ RESPONSÁVEL POR FAZER O OBJETO IR E VOLTAR //ESSE MÉTODO TAMBÉM PODERIA ESTAR NA CLASSE SPRITE!!! //DEPENDENDO DO QUE SE PRETENDER FAZER, ESSE MÉTODO PODERIA SER MAIS COMPLEXO!! public void mover(){ if(vai){ vilao.x += 5; } if(volta){ vilao.x -= 5; } if(vilao.x>400){ vai = false; volta = true; } if(vilao.x<100){ vai = true; volta = false; } } //AGORA DEVEMOS CHAMAR ESSE MÉTODO AQUI //PARA QUE ELE SEJA EXECUTADO O TEMPO INTEIRO public void atualizar() { mover();//AQUI CHAMAMOS O MÉTODO MOVER! } public void desenharGraficos() { Graphics g = getGraphics(); //ISSO JÁ ESTAVA AQUI Graphics bbg = backBuffer.getGraphics();//ISSO TAMBÉM JÁ ESTAVA AQUI... //AQUI VAMOS MANDAR DESENHAR ALGUNS IMAGENS NA TELA bbg.drawImage(fundo.getImage(),0,0,500,500,this);//QUI DESENHAMOS O FUNDO //AS DIMENSÕES ORIGINAIS DO FUNDO SÃO: 500X500 QUE É O TAMANHO DA NOSSA TELA! bbg.drawImage(vilao.cenas[vilao.cena].getImage(), vilao.x, vilao.y,this); vilao.animar(); //================================================================================== g.drawImage(backBuffer, 0, 0, this);//OBS: ISSO DEVE FICAR SEMPRE NO FINAL! } public void inicializar() { setTitle("Titulo do Jogo!"); setSize(janelaW, janelaH); setResizable(false); setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(null); setVisible(true); backBuffer = new BufferedImage(janelaW, janelaH, BufferedImage.TYPE_INT_RGB); vilao.cenas[0] = new ImageIcon("src/tutor8/s1.gif"); vilao.cenas[1] = new ImageIcon("src/tutor8/s2.gif"); vilao.cenas[2] = new ImageIcon("src/tutor8/s3.gif"); } public void run() { inicializar(); while (true) { atualizar(); desenharGraficos(); try { Thread.sleep(1000/FPS); } catch (Exception e) { System.out.println("Thread interrompida!"); } } } public static void main(String[] args) { Game game = new Game(); game.run(); } }
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!
\_(^_^)_/ Comentários em baixo \_(^_^)_/