import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
import java.util.Vector;
import javax.imageio.ImageIO;
import javax.swing.*;
public class GamePanel extends JPanel implements KeyListener, Runnable
{
private static final long serialVersionUID = 1L;
Random rand=new Random();
JFrame frame;
Thread thread=new Thread();
Vector positionsx=new Vector (50,5);
Vector positionsy=new Vector(50,5);
BufferedImage background;
BufferedImage einsammel;
BufferedImage spielpunkt;
boolean up;
boolean down;
boolean left;
boolean right;
boolean gameEnd;
int x=0;
int y=0;
int c=23;
int v=23;
int posxein=100;
int posyein=100;
boolean eingesammelt;
public GamePanel (int w, int h)
{
if(thread!=null)
thread.start();
this.setPreferredSize(new Dimension(w,h));
frame=new JFrame("Spiel");
frame.setLocation(300,150);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(this);
frame.addKeyListener(this);
getBilder();
frame.pack();
frame.setVisible(true);
}
public void getBilder()
{
getEinsammelPunkte();
getBack();
getEinsammel();
}
public void getBack()
{
try
{
background=ImageIO.read(getClass().getResourceAsStream("hintergrund.jpg"));
}
catch(IOException e){System.out.println("FEHLER");}
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawImage(background, 25, 25, this);
g.drawImage(einsammel, posxein, posyein, this);
g.drawImage(spielpunkt, c, v, this);
}
public static void main(String[]args) //Fenster
{
new GamePanel(613,629);
}
public void getEinsammel()
{
try
{
einsammel=ImageIO.read(getClass().getResourceAsStream("einsammel.jpg"));
spielpunkt=ImageIO.read(getClass().getResourceAsStream("spielpunkt.jpg"));
}
catch(IOException e){System.out.println("FEHLER BEI PUNKTEN");}
}
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_UP);
up=true;
if(e.getKeyCode()==KeyEvent.VK_DOWN);
down=true;
if(e.getKeyCode()==KeyEvent.VK_LEFT);
left=true;
if(e.getKeyCode()==KeyEvent.VK_RIGHT);
right=true;
check();
}
public void keyReleased(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_UP);
up=false;
if(e.getKeyCode()==KeyEvent.VK_DOWN);
down=false;
if(e.getKeyCode()==KeyEvent.VK_LEFT);
left=false;
if(e.getKeyCode()==KeyEvent.VK_RIGHT);
right=false;
check();
}
public void check()
{
if(up)
{
if(v!=0)
{
v=v-1;
}
repaint();
}
if(down)
{
if(v<330)
{
v=v+1;
}
repaint();
}
if(up)
{
if(c!=0)
{
c=c-1;
}
repaint();
}
if(down)
{
if(c<960)
{
c=c+1;
}
repaint();
}
checkPosition();
}
public void keyTyped(KeyEvent e)
{
}
public void checkPosition()
{
if(c==posxein&&v==posyein||c==posxein-1&&v==posyein||c==posxein-2&&v==posyein||c==posxein-1&&v==posyein-1||c==posxein-1&&v==posyein-2||c==posxein-2&&v==posyein-1||c==posxein-2&&v==posyein-2||c==posxein+1&&v==posyein||c==posxein+2&&v==posyein||c==posxein+1&&v==posyein+1||c==posxein+1&&v==posyein+2||c==posxein+2&&v==posyein+1||c==posxein+2&&v==posyein+2)
{
System.out.println("EINGESAMMELT");
eingesammelt=true;
}
}
public void getEinsammelPunkte()
{
getVectorelements();
System.out.println("Laden beendet");
posxein=(Integer) positionsx.elementAt(rand.nextInt(28));
try{Thread.sleep(rand.nextInt(1));}catch(Exception e){}
posyein=(Integer) positionsy.elementAt(rand.nextInt(29));
System.out.println("GEMACHT");
}
public void getVectorelements()
{
while(x!=546||y!=560)
{
positionsx.add(x);
positionsy.add(y);
x=x+20;
y=y+20;
positionsx.add(x);
positionsy.add(y);
x=x+19;
y=y+20;
System.out.println("Wurde durchgeführt "+x);
System.out.println(+y);
}
}
public void run()
{
System.out.println("WIRD GEMANCHT");
while(frame.isVisible())
{
check();
repaint();
try{Thread.sleep(10);}catch(InterruptedException e){}
}
}
}