HI,
wir sollen in der Schule n Spiel programmieren (soll sowas ähnliches wie die alten RPGs werden).
Dazu muss ich n paar Bilder ausgeben (fast jedes Objekt hat ein eigenes Bild). Bis jetzt hab ich das so gemacht:
Das funktioniert soweit auch ganz gut. Aber manche Objekte besitzen wiederrum kleinere Objekte die gezeichnet werden müssen (z.B. das Level ist in besitzt von mehreren NPCs) also hab ich versucht meiner "canvas" noch ein ViewComponent hinzuzufügen:
Das wird aber nicht gezeichnet. Ist das möglich oder gibts es einen besseren Ansatz für das was ich vor hab? Das liebste wäre mir, wenn ich einfach angeben könnte "zeichne an Stelle (X,Y) und übermale was unter dir ist". Die Verwaltung was zuerst gezeichnet wird und die ganzen Sachen kann ich dann ja selber machen. Das ganze soll sich dann später auch bewegen, wie sieht es da mit der Performance aus. Ich hab bis jetzt nur mit Pascal zutun gehabt und hab da die Erfahrung geamacht, das die Fenster dann zu flimmern anfangen...
MfG Bergmann.
wir sollen in der Schule n Spiel programmieren (soll sowas ähnliches wie die alten RPGs werden).
Dazu muss ich n paar Bilder ausgeben (fast jedes Objekt hat ein eigenes Bild). Bis jetzt hab ich das so gemacht:
Java:
public class ViewComponent extends JComponent
{
static final long serialVersionUID = 0;
private Image image;
public void setImage( File file )
{
image = Toolkit.getDefaultToolkit().getImage(file.getAbsolutePath());
if (image != null) repaint();
}
@Override
protected void paintComponent( Graphics g )
{
if (image != null) g.drawImage( image, 0, 0, this );
}
}
public static void main(String[] args){
window = new JFrame("game");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setSize(new Dimension(800,600));
window.setResizable(false);
ViewComponent canvas = new ViewComponent();
canvas.setImage(new File("C:\\test.jpg"));
window.add(canvas);
window.setVisible(true);
window.setLocationRelativeTo(null);
}
Das funktioniert soweit auch ganz gut. Aber manche Objekte besitzen wiederrum kleinere Objekte die gezeichnet werden müssen (z.B. das Level ist in besitzt von mehreren NPCs) also hab ich versucht meiner "canvas" noch ein ViewComponent hinzuzufügen:
Java:
ViewComponent canvas2 = new ViewComponent();
canvas2.setImage(new File("C:\\test2.jpg"));
canvas.add(canvas2);
Das wird aber nicht gezeichnet. Ist das möglich oder gibts es einen besseren Ansatz für das was ich vor hab? Das liebste wäre mir, wenn ich einfach angeben könnte "zeichne an Stelle (X,Y) und übermale was unter dir ist". Die Verwaltung was zuerst gezeichnet wird und die ganzen Sachen kann ich dann ja selber machen. Das ganze soll sich dann später auch bewegen, wie sieht es da mit der Performance aus. Ich hab bis jetzt nur mit Pascal zutun gehabt und hab da die Erfahrung geamacht, das die Fenster dann zu flimmern anfangen...
MfG Bergmann.