Spieleprogrammierung

lonol15

Mitglied
Hi,
ich will mich mal mit Spieleprogrammierung in Java beschäftigen.
Natürlich nur kleine Spiele(begrenzte Leistung in java).
Bis jetzt habe ich es mit dem Package java.awt versucht.

Meine Frage ist ob dass der richtige Weg für Multimediaprogrammierung ist, oder ob
man dafür spezielle Bibliotheken verwenden sollte.

Übrigens bin ich relativ erfahren in Java bis auf Spieleprogrammierung.
 

Fabio Hellmann

Erfahrenes Mitglied
Hi,
also prinzipiell ist java.awt eine gute Basis. Natürlich kannst du darauf noch Libraries setzen. Aber es geht auch erstmal nur um das grundlegende Prinzip.
Als Beispiel kann man sich auch auf der Seite java2s ein paar Beispiele ansehen, die rein mit der Java-Api programmierten sind (unter anderem auch 3D).

Gruß

Fabio
 

lonol15

Mitglied
Danke, dann bin ich also doch auf dem richtigen Weg.
Ich habe nämlich ein kleines Towerdefence Spiel gemach.
Wäre ärgerlich alles wider umzuändern.

Jetzt habe ich aber noch eine Frage:
Wie wende ich die Klasse Graphics (oder auch graphics2d) dann an.
Also erstmal brauch ich ein Fenster: JFrame
Und wie weiter****

Mein Weg: (fals dass völliger Schwachsinn ist bitte nicht lachen das stand so in meinem Buch)
Ich habe die klasse JPanel erweitert und da dann die Methode repaint() überschrieben.
Ist das so richtig oder muss ich das ganz anders angehen?

Das kommt mir nämlich etwas umständlich vor.
 
Zuletzt bearbeitet:

genodeftest

Erfahrenes Mitglied
Nicht ganz. Du sollst ein JPanel nehmen (das ist so üblich, wenn man Swing nutzt). Aber du sollst nicht (auf gar keinen Fall!) repaint() überschreiben, sondern die Methode paintComponent(). Graphics2D bekommst du, indem du in dieser Methode dein Graphics-Object zu einem Graphics2D-Objekt castest:
Java:
@Override
public void paintComponent(Graphics g){
    Graphics2D g2 = (Graphics2D) g;
und dann kannst du g2 genauso wie g benutzen.
Eine kleine Anmerkung noch: du solltest die Referenz auf dieses Objekt (g oder g2) nicht speichern (z.B. in einem Attribut irgend einer Klasse), sondern nur an andere Methoden bei deren Aufruf übergeben, damit auch diese zeichnen können.