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

Bu Sayfayı Paylaş:




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir