Application.java
Dosyayı İndir
package com.godoro.game.eater;
import java.awt.BorderLayout;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.BufferedInputStream;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import javax.imageio.ImageIO;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.swing.JFrame;
public class Application extends JFrame implements KeyListener {
private final static String IMAGES_FORMAT = "/resources/images/%s.%s";
private final static String SOUNDS_FORMAT = "/resources/sounds/%s.%s";
private Map<String, Image> imageMap = new HashMap<>();
private Map<String, Clip> soundMap = new HashMap<>();
private Board board = new Board();
private Universe universe = new Universe();
public Application() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 800, 600);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(board, BorderLayout.CENTER);
addKeyListener(this);
loadImages();
loadAudios();
board.setUniverse(universe);
board.setImageMap(imageMap);
board.setSoundMap(soundMap);
}
private InputStream getResource(String format, String name, String extension) {
String path = String.format(format, name, extension);
return getClass().getResourceAsStream(path);
}
private void loadImages() {
loadImage("player");
loadImage("food");
loadImage("enemy");
loadImage("bullet");
}
private void loadImage(String name) {
try {
InputStream resource = getResource(IMAGES_FORMAT, name, "png");
Image image = ImageIO.read(resource);
imageMap.put(name, image);
} catch (Exception e) {
e.printStackTrace();
}
}
private void loadAudios() {
loadAudio("game");
loadAudio("eaten");
loadAudio("fire");
loadAudio("killed");
loadAudio("dead");
loadAudio("won");
}
private void loadAudio(String name) {
try {
Clip clip = AudioSystem.getClip();
InputStream resource = getResource(SOUNDS_FORMAT, name, "wav");
AudioInputStream audio = AudioSystem.getAudioInputStream(
new BufferedInputStream(resource));
clip.open(audio);
soundMap.put(name, clip);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_LEFT:
board.left();
break;
case KeyEvent.VK_RIGHT:
board.right();
break;
case KeyEvent.VK_UP:
board.up();
break;
case KeyEvent.VK_DOWN:
board.down();
break;
case KeyEvent.VK_SPACE:
board.fire();
break;
}
}
@Override
public void keyReleased(KeyEvent e) {
}
public static void main(String[] args) {
Application frame = new Application();
frame.setVisible(true);
}
}
Dosyayı İndir