public class Map extends JPanel implements ActionListener{
Player p;
boolean test;
Timer time, time2, time3;
char[][] array;
int m, n, p1, p2, a, q, x, y;
ImageIcon i1 = new ImageIcon("Ziel.png");
Image img1 = i1.getImage();
ImageIcon i2 = new ImageIcon("Kugel.png");
Image img2 = i2.getImage();
ImageIcon i3 = new ImageIcon("Baum.png");
Image img3 = i3.getImage();
ImageIcon i4 = new ImageIcon("img.png");
Image img4 = i4.getImage();
Random r = new Random();
public Map(){
time = new Timer(10, this);
time.start();
p = new Player();
addKeyListener(new AL());
setFocusable(true);
a = 22;
p1 = 3;
p2 = 3;
x = 70;
y = 70;
q = r.nextInt(1 + 2) - 1;
}
public char[][] initArray(){
char[][] ch = new char[17][17];
ch[0][0] = '-';ch[1][0] = '-';ch[2][0] = '-';ch[3][0] = '-';ch[4][0] = '-';ch[5][0] = '-';ch[6][0] = '-';ch[7][0] = '-';ch[8][0] = '-';ch[9][0] = '-';ch[10][0] = '-';ch[11][0] = '-';ch[12][0] = '-';ch[13][0] = '-';ch[14][0] = '-';ch[15][0] = '-';ch[16][0] = '-';
ch[0][1] = '-';ch[1][1] = '-';ch[2][1] = '-';ch[3][1] = ' ';ch[4][1] = ' ';ch[5][1] = ' ';ch[6][1] = '-';ch[7][1] = '-';ch[8][1] = '-';ch[9][1] = ' ';ch[10][1] = ' ';ch[11][1] = ' ';ch[12][1] = ' ';ch[13][1] = '-';ch[14][1] = '-';ch[15][1] = '-';ch[16][1] = '-';
ch[0][2] = '-';ch[1][2] = '-';ch[2][2] = ' ';ch[3][2] = ' ';ch[4][2] = ' ';ch[5][2] = ' ';ch[6][2] = ' ';ch[7][2] = '-';ch[8][2] = ' ';ch[9][2] = ' ';ch[10][2] = ' ';ch[11][2] = ' ';ch[12][2] = ' ';ch[13][2] = ' ';ch[14][2] = '-';ch[15][2] = '-';ch[16][2] = '-';
ch[0][3] = '-';ch[1][3] = ' ';ch[2][3] = ' ';ch[3][3] = ' ';ch[4][3] = ' ';ch[5][3] = ' ';ch[6][3] = ' ';ch[7][3] = ' ';ch[8][3] = ' ';ch[9][3] = ' ';ch[10][3] = ' ';ch[11][3] = ' ';ch[12][3] = ' ';ch[13][3] = ' ';ch[14][3] = ' ';ch[15][3] = '-';ch[16][3] = '-';
ch[0][4] = '-';ch[1][4] = ' ';ch[2][4] = ' ';ch[3][4] = ' ';ch[4][4] = ' ';ch[5][4] = ' ';ch[6][4] = ' ';ch[7][4] = ' ';ch[8][4] = ' ';ch[9][4] = ' ';ch[10][4] = ' ';ch[11][4] = ' ';ch[12][4] = ' ';ch[13][4] = ' ';ch[14][4] = ' ';ch[15][4] = ' ';ch[16][4] = '-';
ch[0][5] = '-';ch[1][5] = ' ';ch[2][5] = ' ';ch[3][5] = ' ';ch[4][5] = ' ';ch[5][5] = ' ';ch[6][5] = ' ';ch[7][5] = ' ';ch[8][5] = ' ';ch[9][5] = ' ';ch[10][5] = ' ';ch[11][5] = ' ';ch[12][5] = ' ';ch[13][5] = ' ';ch[14][5] = ' ';ch[15][5] = ' ';ch[16][5] = '-';
ch[0][6] = '-';ch[1][6] = ' ';ch[2][6] = ' ';ch[3][6] = ' ';ch[4][6] = ' ';ch[5][6] = ' ';ch[6][6] = ' ';ch[7][6] = ' ';ch[8][6] = ' ';ch[9][6] = ' ';ch[10][6] = ' ';ch[11][6] = ' ';ch[12][6] = ' ';ch[13][6] = ' ';ch[14][6] = ' ';ch[15][6] = ' ';ch[16][6] = '-';
ch[0][7] = '-';ch[1][7] = '-';ch[2][7] = ' ';ch[3][7] = ' ';ch[4][7] = ' ';ch[5][7] = ' ';ch[6][7] = ' ';ch[7][7] = ' ';ch[8][7] = ' ';ch[9][7] = ' ';ch[10][7] = ' ';ch[11][7] = ' ';ch[12][7] = ' ';ch[13][7] = ' ';ch[14][7] = ' ';ch[15][7] = ' ';ch[16][7] = '-';
ch[0][8] = '-';ch[1][8] = '-';ch[2][8] = '-';ch[3][8] = ' ';ch[4][8] = ' ';ch[5][8] = ' ';ch[6][8] = ' ';ch[7][8] = ' ';ch[8][8] = ' ';ch[9][8] = '-';ch[10][8] = ' ';ch[11][8] = ' ';ch[12][8] = ' ';ch[13][8] = ' ';ch[14][8] = ' ';ch[15][8] = '-';ch[16][8] = '-';
ch[0][9] = '-';ch[1][9] = '-';ch[2][9] = '-';ch[3][9] = '-';ch[4][9] = ' ';ch[5][9] = ' ';ch[6][9] = ' ';ch[7][9] = ' ';ch[8][9] = '-';ch[9][9] = '-';ch[10][9] = '-';ch[11][9] = ' ';ch[12][9] = ' ';ch[13][9] = ' ';ch[14][9] = '-';ch[15][9] = '-';ch[16][9] = '-';
ch[0][10] = '-';ch[1][10] = '-';ch[2][10] = '-';ch[3][10] = '-';ch[4][10] = '-';ch[5][10] = '-';ch[6][10] = '-';ch[7][10] = '-';ch[8][10] = '-';ch[9][10] = '-';ch[10][10] = '-';ch[11][10] = '-';ch[12][10] = '-';ch[13][10] = '-';ch[14][10] = '-';ch[15][10] = '-';ch[16][10] = '-';
return ch;
}
public void actionPerformed(ActionEvent e) {
repaint();
playerMove();
checkCollisions();
}
public void playerMove(){
if(p.getRX() == -1 && array[p1 - 1][p2] != '-' && p.bewegen == true){
//p1 = p1 - 1;
x = x - 1;
}
if(p.getRX() == +1 && array[p1 + 1][p2] != '-' && p.bewegen == true){
//p1 = p1 + 1;
x = x + 1;
}
if(p.getRY() == -1 && array[p1][p2 - 1] != '-' && p.bewegen == true){
//p2 = p2 - 1;
y = y - 1;
}
if(p.getRY() == +1 && array[p1][p2 + 1] != '-' && p.bewegen == true){
//p2 = p2 + 1;
y = y + 1;
}
}
public void checkCollisions(){
if(x < a*p1){
p1 = p1 - 1;
}
if(x > a*p1){
p1 = p1 + 1;
}
if(y > a*p2){
p2 = p2 + 1;
}
if(y < a*p2){
p2 = p2 - 1;
}
System.out.println("p1 = " + a*p1 + " p2 = " + a*p2);
System.out.println("x = " + x + " y = " + y);
}
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
array = initArray();
for(int n=0 ; n < 17; n++){
for(int m=0; m < 17; m++){
if(array[m][n] == '-'){
if(q == 1){
g2d.drawImage(img3, a*m, a*n, null);
}
if(q == 0){
g2d.drawImage(img2, a*m, a*n, null);
}
if(q == - 1){
g2d.drawImage(img3, a*m, a*n, null);
}
}
}
}
g2d.drawImage(img4, x, y, null);
g2d.drawImage(img1, a*p1, a*p2, null);
}
private class AL extends KeyAdapter{
public void keyPressed(KeyEvent e){
int key = e.getKeyCode();
if (key == KeyEvent.VK_LEFT){
p.richtungx = - 1;
p.richtungy = 0;
}
if (key == KeyEvent.VK_RIGHT){
p.richtungx = + 1;
p.richtungy = 0;
}
if (key == KeyEvent.VK_UP){
p.richtungx = 0;
p.richtungy = - 1;
}
if (key == KeyEvent.VK_DOWN){
p.richtungx = 0;
p.richtungy = + 1;
}
}
public void keyReleased(KeyEvent e){
int key = e.getKeyCode();
if (key == KeyEvent.VK_LEFT){
p.richtungx = 0;
p.richtungy = 0;
p.bewegen = true;
}
if (key == KeyEvent.VK_RIGHT){
p.richtungx = 0;
p.richtungy = 0;
p.bewegen = true;
}
if (key == KeyEvent.VK_UP){
p.richtungy = 0;
p.richtungx = 0;
p.bewegen = true;
}
if (key == KeyEvent.VK_DOWN){
p.richtungy = 0;
p.richtungx = 0;
p.bewegen = true;
}
}
}
}