B
ByeBye 249712
Hallo
Ich muss mit Java 2D ein Spielfeld zeichnen. Es besteht aus lauter Quadraten, welche alle rot sind. Auf dem Spielfeld ist links oben in der Ecke ein schwarzes Quadrat. Nun möchte ich dieses Quadrat mit meiner Tastatur auf dem Spielfeld bewegen können. Zunächst einmal die Klasse in der das Feld gezeichnet wird.
Mein Ansatz war jetzt irgendwie bei "private Point currentRect = new Point(0, 0);" (Zeile 8)
immer die neuen Koordinaten die durch das drücken der Tastatur entstehen, dort hinein zu schreiben. Sodass das schwarze Quadrat dann immer an der neuen Stelle gezeichnet wird. Kann mir jemand sagen wie ich dass mache?
Hier der Code mit dem Keylistener
Der ist natürlich noch unvollständig. Ich hoffe da blickt jemand durch. Bin absoluter Anfänger in Java-Programmierung. Wär echt nett wenn mir jemand helfen könnte
schöne Grüße
Ich muss mit Java 2D ein Spielfeld zeichnen. Es besteht aus lauter Quadraten, welche alle rot sind. Auf dem Spielfeld ist links oben in der Ecke ein schwarzes Quadrat. Nun möchte ich dieses Quadrat mit meiner Tastatur auf dem Spielfeld bewegen können. Zunächst einmal die Klasse in der das Feld gezeichnet wird.
Code:
public class Field extends JPanel {
/**
* Saves which Rect is currently black.
*/
private Point currentRect = new Point(0, 0);
/**
* Color of the drawn rect;
*/
private Color currentRectColor = Color.BLACK;
/**
* Constructor.
*
*/
public Field() {
this.setVisible(true);
this.repaint();
}
@Override
protected void paintComponent(final Graphics g) {
super.paintComponent(g);
Graphics2D twoD = (Graphics2D) g;
// Backgorund color used as border color.
this.setBackground(Color.BLACK);
for (int x = 0; x < MainFrame.RECNUMBER; ++x) {
// draws the ful squares
for (int y = 0; y < MainFrame.RECNUMBER; ++y) {
if (x == currentRect.getX() && y == currentRect.getY()) {
twoD.setColor(currentRectColor);
}
else { twoD.setColor(Color.RED);
}
twoD.fillRect(x * MainFrame.RECSIZE + x,
y * MainFrame.RECSIZE + y, MainFrame.RECSIZE,
MainFrame.RECSIZE);
}
}
}
}
Mein Ansatz war jetzt irgendwie bei "private Point currentRect = new Point(0, 0);" (Zeile 8)
immer die neuen Koordinaten die durch das drücken der Tastatur entstehen, dort hinein zu schreiben. Sodass das schwarze Quadrat dann immer an der neuen Stelle gezeichnet wird. Kann mir jemand sagen wie ich dass mache?
Hier der Code mit dem Keylistener
Code:
public class Controller implements ActionListener, KeyListener {
private Field field ;
public Controller( Field field ) {
this.field = field;
this.field.addKeyListener( this );
}
public final void up() {
}
@Override
public final void keyPressed(final KeyEvent e) {
int code = e.getKeyCode();
if (code == KeyEvent.VK_W) {
up();
}
}
@Override
public void actionPerformed(ActionEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
}
}
Der ist natürlich noch unvollständig. Ich hoffe da blickt jemand durch. Bin absoluter Anfänger in Java-Programmierung. Wär echt nett wenn mir jemand helfen könnte

schöne Grüße