2D-Grafik Imageimport durch eine gezeichnete Form ersetzen

Monokuma

Aktives Mitglied
Hallo zusammen,
ich habe ein kleines Problem mit meinem Spiel. In meinem Projekt würde ich gerne das Bild, welches ich als Sprite nutze in eine gezeichnete Form umwandeln mit JPanel oder JFrame. Ich habe leider zu wenig Erfahrung mit diesen beiden Themen und bräuchte etwas Hilfe meine Idee umzusetzen.

[CODE lang="java" title="Sprite ball"]import javax.swing.ImageIcon;

public class Ball extends Sprite {
private int xdir;
private int ydir;
protected String ball = " ball .png";

public Ball() {
xdir = 1;
ydir = -1;
ImageIcon ii = new ImageIcon(this.getClass().
getResource(ball));
image = ii.getImage();
width = image.getWidth(null);
heigth = image.getHeight(null);
resetState();
}

public void move() {
x += xdir;
y += ydir;
if (x == 0) {
setXDir(1);
}
if (x == 280) {
setXDir(-1);
}
if (y == 0) {
setYDir(1);
}
}

public void resetState() {
x = 230;
y = 355;
}

public void setXDir(int x) {
xdir = x;
}

public void setYDir(int y) {
ydir = y;
}

public int getYDir() {
return ydir;
}
}
[/CODE]
 
Du willst was? Ein Bild auf einem JFrame anzeigen?

Nebenbei: bist Du Dir sicher, dass " ball .png" der richtige Dateiname ist?
Ja das ist der richtige Dateiname. Der Sprite ist ein Ball. Ich importiere den und nutze ihn als eigene Grafik, aber ich möchte nicht das Bild nutzen, sondern eine eigene Form erstellen (in dem Fall ein Kreis) mit der ich dann spielen kann.
 
aber ich möchte nicht das Bild nutzen, sondern eine eigene Form erstellen (in dem Fall ein Kreis) mit der ich dann spielen kann.
D. h. Du willst ein Bild erzeugen?
Java:
private Image createImage() {
    BufferedImage img = new BufferedImage(64, 64, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g = img.createGraphics();
    g.setColor(Color.RED);
    g.drawArc(0, 0, 64, 64, 0, 360);
    g.dispose();
    return img;
}
 
D. h. Du willst ein Bild erzeugen?
Java:
private Image createImage() {
    BufferedImage img = new BufferedImage(64, 64, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g = img.createGraphics();
    g.setColor(Color.RED);
    g.drawArc(0, 0, 64, 64, 0, 360);
    g.dispose();
    return img;
}
Nein. Das ist der Teil, den ich durch eine Form ersetzen will
Ich möchte eine Figur zeichnen
 
Die Methode createImage musst Du natürlich in die Klasse Ball kopieren. Außerdem wäre es denkbar, dass Sprite selbst eine Zeichenmethode besitzt, die Du direkt überschreiben könntest, das sieht man aber in Deinem Code nicht.


Was soll damit sein und was haben die mit Deinem Sprite zu tun?
Sollte ich vielleicht meinen ganzen Code von allen Klassen reinschicken? Weil das wollte ich so gut wie es geht vermeiden
 
Kurzer Bericht über das Ergebnis des Chats: es ging lediglich darum, dass Sprite ein Image liefert und sich nicht selbst zeichnet. Mit JPane/JFrame etc. hatte das alles nichts zu tun.
 

Zurück
Oben