import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.BufferedImageOp;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingWorker;
public class battle extends JPanel implements KeyListener{
private JFrame fenster;
private JPanel hintergrundPanel;
private JPanel hintergrundbild;
private JLabel flugzeug1;
private JPanel flugzeug2;
private Graphics bild;
private JLabel hinterbild;
//public static final long SPEED = 1000L;
public boolean laeuft = true;
BufferedImage pic;
public int timer;
public int positionx;
public int positiony;
public int flugzeugtyp=0;
public ImageIcon imageicon= new ImageIcon("C://Spiele/battle/Flieger2.gif");
public battle()
{
fenster=new JFrame("Battle over Crailsheim");
fenster.setSize(1,1);
fenster.setVisible(true);
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
hintergrundPanel=new JPanel();
hintergrundPanel.setBackground(Color.black);
hinterbild=new JLabel();
hinterbild.setIcon(new ImageIcon("C://Spiele/battle/hintergrund.png"));
hintergrundbild=new JPanel();
hintergrundbild.add(hinterbild);
flugzeug1=new JLabel();
flugzeug1.setIcon(new ImageIcon("C://Spiele/battle/Flieger2.gif"));
flugzeug1.setVerticalAlignment(1);
hinterbild.setVerticalAlignment(0);
//fenster.add(hintergrundPanel);
//hintergrundPanel.add(hintergrundbild);
flugzeug1.setLocation(1,1);
fenster.addKeyListener(this);
URL pic_url = this.getClass().getClassLoader().getResource("hintergrund.png");
try {
pic = ImageIO.read(pic_url);
} catch (IOException e) {
e.printStackTrace();
}
fenster.add(this);
this.add(flugzeug1);
fenster.setSize(700,550);
flugzeug1.setLocation(500,440);
fenster.repaint();
positionx=450;
positiony=440;
flugzeug1.setLocation(positionx,positiony);
for(int i=0;i<500;i++){ //warteschleife für dauer des spiels
warteschleife();
}
}
public static void main(String[] args0)
{
battle test = new battle();
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(pic,20,20,this);
}
public void keyPressed(KeyEvent arg0) {
int key = arg0.getKeyCode();
switch (key){
case KeyEvent.VK_LEFT: links1(); break;
case KeyEvent.VK_RIGHT: rechts1();break;
case KeyEvent.VK_SPACE: feuer1();break;
}
}
public void keyReleased(KeyEvent arg0) {
}
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void lasslaufen()
{
flugzeug1.setLocation(positionx-timer,positiony);
}
public void warteschleife()
{
SwingWorker worker = new SwingWorker<Boolean, Void>() {
long SPEED=100L;
public Boolean doInBackground() {
try {
Thread.sleep(SPEED);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(laeuft){
timer=timer+1;
if (positionx-timer<0)
{
timer=0;
positionx=640;
}
lasslaufen();
}
return true;
}
};
worker.execute();
}
public void links1()
{
BufferedImage test;
try {
test = ImageIO.read(new File("C://Spiele/battle/Flieger2.gif"));
BufferedImage rotatedImage = rotateImage(test, -90.0);
flugzeug1.setIcon(new ImageIcon(rotatedImage));
} catch (IOException e) {
System.out.println("Fehler beim laden der Dateien");
}
}
public void rechts1()
{
BufferedImage test;
try {
test = ImageIO.read(new File("C://Spiele/battle/Flieger2.gif"));
BufferedImage rotatedImage = rotateImage(test, 90.0);
flugzeug1.setIcon(new ImageIcon(rotatedImage));
} catch (IOException e) {
System.out.println("Fehler beim laden der Dateien");
}
//flugzeug1.repaint();
//flugzeug1.validate();
}
public void feuer1()
{
}
private static BufferedImage rotateImage(BufferedImage src, double degrees) {
AffineTransform affineTransform = AffineTransform.getRotateInstance(Math.toRadians(degrees), src.getWidth() / 2, src.getHeight() / 2);
BufferedImage rotatedImage = new BufferedImage(src.getWidth(), src.getHeight(), src.getType());
Graphics2D g = (Graphics2D) rotatedImage.getGraphics();
// g.setComposite(AlphaComposite.getInstance(AlphaComposite.DST, 150f));
g.setTransform(affineTransform);
g.drawImage(src, 0, 0, null);
return rotatedImage;
}
}