Bild mit KeyListener verschieben

hodasemi

Neues Mitglied
Guten Tag zusammen!

Ich bin gerade dabei Java zu erlernen. Dabei bin ich auf folgendes Problem gestoßen:

Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class testtesttest extends JPanel implements ActionListener, KeyListener {
	private int x = 0,y = 0,dx,dy;
	Image img;		
	
	public testtesttest(){
		ImageIcon i = new ImageIcon("bg.png");
		img = i.getImage();
	}	
	
	public void actionPerformed(ActionEvent e){
		move();
		repaint();
	}	
	
	public void paint(Graphics g){
		super.paint(g);
		Graphics2D g2d = (Graphics2D) g;
		g2d.drawImage(img, getX(),getY(),null);
	}
	
	public void move(){
		x = x+dx;
		y = y+dy;
	}
	
	public int getX(){
		return x;
	}
	
	public int getY(){
		return y;
	}
	
	public void keyPressed(KeyEvent e){
		int key = e.getKeyCode();
		if(key == KeyEvent.VK_A){
			dx = -10;
		}	
		if(key == KeyEvent.VK_D){
			dx = 10;
		}
		if(key == KeyEvent.VK_W){
			dy = -10;
		}
		if(key == KeyEvent.VK_S){
			dy = 10;
		}
	}
	
	public void keyReleased(KeyEvent e){
		int key = e.getKeyCode();
		if(key == KeyEvent.VK_A){
			dx = 0;
		}
		if(key == KeyEvent.VK_D){
			dx = 0;
		}
		if(key == KeyEvent.VK_W){
			dy = 0;
		}
		if(key == KeyEvent.VK_S){
			dy = 0;
		}
	}
	public void keyTyped(KeyEvent e){}
}

Java:
import javax.swing.JFrame;

public class MAIN {
	public static void main(String[] args){
		JFrame frame = new JFrame();
		frame.add(new testtesttest());
		frame.setTitle("2D testgame");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setSize(700,550);
		frame.setVisible(true);
		frame.setLocationRelativeTo(null);
	}
}

Das Bild wird gemalt, wenn ich dann aber W,A,S,D drücke passiert nichts.
 

Zurück
Oben