3. UtilSom
package com.javagames.util;
import java.applet.*;
import java.io.*;
import java.net.*;
import javax.sound.sampled.*;
public class UtilSom {
public void toca(String musica) {
try {
File f = new File(musica);
AudioInputStream audioIn = AudioSystem.getAudioInputStream(f);
Clip clip = AudioSystem.getClip();
clip.open(audioIn);
clip.loop(1);
Thread.sleep(2000);
clip.close();
//
clip.stop();
} catch (Exception e) {
e.printStackTrace();
}
}
4. UtilSom
public void tocaApplet(String musica) {
try {
URL url = new URL("file://" + new File(musica).getAbsolutePath());
AudioClip clip = Applet.newAudioClip(url);
clip.play();
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
//
new UtilSom().toca(EfeitoSonoro.GAME_OVER.getSom());
//
new UtilSom().toca(EfeitoSonoro.COLISAO.getSom());
new UtilSom().tocaApplet(EfeitoSonoro.COLISAO.getSom());
}
}
5. Nave
package com.javagames.arcade;
import java.awt.Image;
public class Nave {
/**
* Atributo que recebe a referência de um arquivo de imagem,
* para exibir o objeto controlado pelo jogador.
* */
private Image icone;
/**
* Emite ou não beep nas movimentações da nave.
*/
private boolean beep;
/**
* Atributo que define a coordenada X para exibição da imagem.
* */
private int posicaoX;
6. Nave
/**
* Atribui uma imagem ao atributo aImagemEsfera.
* @param objeto Image, geralmente carregado com ToolKit.
*/
public void setIcone(Image icone) {
this.icone = icone;
}
/**Retorna a imagem alocada ao objeto, para exibição na tela.
* @return imagem alocada ao objeto.
*/
public Image getIcone() {
return this.icone;
}
/**Define um valor ao atributo da coordenada X.
* @param inteiro que representa a coordenada X.
*/
public void setPosicaoX(int pX) {
this.posicaoX = pX;
}
7. Nave
/**Retorna o valor para indicação da coordenada a ser exibida
* a imagem.
* @return inteiro que representa a coordenada X.
*/
public int getPosicaoX() {
return this.posicaoX;
}
public void setBeep(boolean beep) {
this.beep = beep;
}
public boolean isBeep() {
return beep;
}
}
8. GerenteDaNave
package com.javagames.arcade;
import java.awt.*;
import com.javagames.util.*;
public class GerenteDaNave {
private static final int DESLOCAMENTO = 4;
private Nave nave;
public GerenteDaNave() {
nave = new Nave();
nave.setIcone(UtilImagem.getImagem("spaceship.png"));
nave.setPosicaoX(100);
}
16. SpaceInvaders
private void movimentoEsquerda() {
if (!gerenteDaNave.confereColisaoEsquerda(0))
gerenteDaNave.caminhaEsquerda();
}
private void movimentoDireita() {
if (!gerenteDaNave.confereColisaoDireita(500))
gerenteDaNave.caminhaDireita();
}
17. SpaceInvaders
/**Inner class para tratamento dos comandos do teclado,
* para interação com o usuário.
*/
private class GerenteDeInteracaoComUsuario implements KeyListener {
public void keyPressed(KeyEvent eventoTecla) {
if (eventoTecla.getKeyCode() == KeyEvent.VK_LEFT) {
movimentoEsquerda();
}
if (eventoTecla.getKeyCode() == KeyEvent.VK_RIGHT) {
movimentoDireita();
}
}
public void keyReleased(KeyEvent arg0) {
}
public void keyTyped(KeyEvent arg0) {
}
}