package testworld_IMoY;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javax.swing.*;
import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.Player;
public class Engine extends JFrame implements KeyListener{
boolean sound=true;
boolean run=true;
Gebietverwaltung gv;
Buttonloader bl;
JPanel world=new JPanel();
Menu menu;
JLabel player;
Spieler spieler;
Music bgm;
public Engine(Gebietverwaltung gv,Spieler spieler,Buttonloader bl){
this.gv=gv;
this.bl=bl;
this.spieler=spieler;
this.setTitle("IMoY Test");
this.setSize(640+4,512+32);
this.setLayout(null);
this.setResizable(false);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}});
this.setLocationRelativeTo(null);
this.setVisible(true);
this.addKeyListener(this);
this.setFocusable(true);
world.setSize(640,480);
world.setLocation(0, 0);
world.setLayout(null);
this.add(world);
menu=new Menu(this.bl,spieler,this);
this.add(menu);
player=new JLabel(new ImageIcon("testtexture/player.gif"));
player.setSize(32, 32);
player.setLocation(spieler.xposy, spieler.yposy);
setWorld(gv.aktivgebiet);
//addRucksack();
if(spieler.sound){
bgm=new Music(getBGM(gv.aktivgebiet));
bgm.execute();
}
}
public void setWorld(int worldnr){//zum begehen, der neuen Welt
sound(worldnr,gv.aktivgebiet);
world.removeAll();
gv.aktivgebiet=worldnr;
world.add(player);
world.add(gv.gebiete.get(worldnr).hintergrund);
this.repaint();
}
public void keyReleased(KeyEvent ke){
}
public void keyTyped(KeyEvent ke){
}
public void keyPressed(KeyEvent ke){
int key = ke.getKeyCode();
System.out.println("dekey");
if(run){
switch (key) {
case KeyEvent.VK_RIGHT:laufen(0);break;
case KeyEvent.VK_DOWN:laufen(1);break;
case KeyEvent.VK_LEFT:laufen(2);break;
case KeyEvent.VK_UP:laufen(3);break;
default:break;
}
}
}
package testworld_IMoY;
import javax.swing.*;
import java.awt.Color;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
class Menu extends JPanel{
JLabel anzeige;
JProgressBar hp,mp;
Spieler spieler;
Engine fenster;
public Menu(Buttonloader bl,final Spieler spieler,final Engine fenster){
this.fenster=fenster;
this.spieler=spieler;
this.setSize(640,32);
this.setLayout(null);
this.setLocation(0, 480);
switch (spieler.typ) {
case 0: anzeige=new JLabel(new ImageIcon("testtexture/menu0.gif"));break;
case 1: anzeige=new JLabel(new ImageIcon("testtexture/menu1.gif"));break;
case 2: break;//TODO^^
default:break;
}
anzeige.setSize(640, 32);
anzeige.setLocation(0, 0);
hp=new JProgressBar();
hp.setValue(spieler.getPercentHP());
hp.setSize(75,12);
hp.setLocation(32, 4);
hp.setBackground(Color.BLACK);
hp.setForeground(Color.RED);
bl.blist.get(0).addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
spieler.useHeiltrank();
hp.setValue(spieler.getPercentHP());
}
});
mp=new JProgressBar();
mp.setValue(spieler.getPercentMP());
mp.setSize(75,12);
mp.setLocation(32, 18);
mp.setBackground(Color.BLACK);
mp.setForeground(Color.BLUE);
JLabel sound=new JLabel("M:");
sound.setSize(16, 26);
sound.setLocation(573, 4);
this.add(sound);
JCheckBox mute=new JCheckBox();
if(spieler.sound)mute.setSelected(true);
mute.setLocation(587, 12);
mute.setSize(13, 13);
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
AbstractButton abstractButton = (AbstractButton) actionEvent.getSource();
boolean selected = abstractButton.getModel().isSelected();
if(selected){
spieler.sound=true;
fenster.startsoundfrom();
}
else{
spieler.sound=false;
fenster.bgm.p.close();
}
System.out.println(selected);
}
};
mute.addActionListener(actionListener);
mute.setMargin(new Insets(-2,-2,-2,-2));//Läst die render verschwinden
this.add(mute);
this.add(bl.blist.get(0));
this.add(bl.blist.get(1));
this.add(bl.blist.get(2));
this.add(bl.blist.get(3));
this.add(bl.blist.get(4));
this.add(bl.blist.get(5));
this.add(bl.blist.get(6));
this.add(hp);
this.add(mp);
this.add(anzeige);
}
}