Akeshihiro
Erfahrenes Mitglied
Ganz einfach. Du hast doch selbst dx und dy eingebaut. Wenn die beiden Werte als Offset für die Verschiebung stehen (und nach meinem bisherigem Kenntnisstand ist das so), dann kann man das in der paintComponent-Methode so machen:
Die move-Methode muss dann natürlich weg, da das dann nicht mehr passt.
Wie du siehst, ist das etwas anders als bei dir. Ich habe z.B. für ein Feld auch eine entsprechende Klasse Field erstellt, damit es sauberer wird. Diese sieht so aus:
Java:
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D)g;
if(fields == null) return;
for(int i = 0; i < fields.length; i++) {
if(fields[i] == null) {
continue;
}
for(int j = 0; j < fields[i].length; j++) {
Field field = fields[i][j];
if(field == null) {
continue;
}
g2d.drawImage(field.getImage(), offsetX + field.x, offsetY + field.y, this);
}
}
}
Wie du siehst, ist das etwas anders als bei dir. Ich habe z.B. für ein Feld auch eine entsprechende Klasse Field erstellt, damit es sauberer wird. Diese sieht so aus:
Java:
package de.tutorials.forum.help.javaman13.gott;
import java.awt.Image;
public class Field {
private Image image;
public int x;
public int y;
public int spanX = 1;
public int spanY = 1;
/**
* Gets the image.
*
* @return the image
*/
public Image getImage() {
return image;
}
/**
* Gets the spanX.
*
* @return the spanX
*/
public int getSpanX() {
return spanX;
}
/**
* Gets the spanY.
*
* @return the spanY
*/
public int getSpanY() {
return spanY;
}
/**
* Gets the x.
*
* @return the x
*/
public int getX() {
return x;
}
/**
* Gets the y.
*
* @return the y
*/
public int getY() {
return y;
}
/**
* Sets the image.
*
* @param image
* the image to set
*/
public void setImage(Image image) {
this.image = image;
}
/**
* Sets the spanX.
*
* @param spanX
* the spanX to set
*/
public void setSpanX(int spanX) {
this.spanX = spanX;
}
/**
* Sets the spanY.
*
* @param spanY
* the spanY to set
*/
public void setSpanY(int spanY) {
this.spanY = spanY;
}
/**
* Sets the x.
*
* @param x
* the x to set
*/
public void setX(int x) {
this.x = x;
}
/**
* Sets the y.
*
* @param y
* the y to set
*/
public void setY(int y) {
this.y = y;
}
}