Hey Leute,
ich bin gerade dabei ein Schiffeversenken zu programmieren und komme gerade einfach
nicht weiter! Mein Spiel ist wie folgt aufgebaut:
Ein JFrame für das gesamte Fenster. Hierauf werden zwei Felder gezeichnet, die vom Typ
JPanel sind und als die Spielfelder (Spieler & Gegenspieler) dienen. In der Paint-Methode
dieser Klasse findet die grafische Zeichnung statt. Zunächst wird in der Paint()-Methode
ein Hintergundbild gezeichnet, darauf dann die Linien zur Rasterung, damit ein Feld mit
100 kleinen Quadranten entsteht.
Wir nun geschossen, wird jeweils repaint() aufgerufen und in den jeweiligen Quadranten
entweder ein Tropfen, oder ein Explosions-Icon gezeichnet.
Das funktioniert auch ganz gut.... Jetzt muss ich aber auf dem gegnerischen Feld (funktioniert
ja nach dem gleichen Prinzip, nur mit abgeändertem Hintergrundbild und Icons) noch die Schiffe
einzeichnen. Zunächst werden Labels mit Schiffjpgs auf das gegnerische Feld per Drag & Drop
gezogen. Wird nun das Spiel gestartet, werden die Schiffe in der Panelklasse fest innerhalb von
Paint() gezeichnet und die Labels invisibel in Ihre Ausgangsposition verschoben.
Jetzt kommt das eigentliche Problem:
Wenn nun ein Feld getroffen wurde, muss der Teil des Schiffpics, dessen Quadranten getroffen
wurde, mit entweder einem Explosions- oder einem Tropfenicon überzeichnet werden. Der Rest
des Pics muss trotzdem sichtbar bleiben. Ich habe es momentan so porgrammiert, dass die
Schiffe zu Beginn einmal gezeichnet werden, und danach dann jeweils die getroffen- oder nicht
getroffen- Pics. Trotzdem bleiben die Schiffe vollständig sichtbar und die beschossenen Felder
werden dort nicht angezeigt.
Ich hoffe, man konnte verstehen, was ich meine! Kann mir jemand helfen? Vielleicht gibt es
auch eine schnelle Lösung, ohne dass ich alles umschmeissen muss..... Es ist nämlich alles
ziemlich komplex geworden, und jetzt nochmal alles abändern wäre der Horror! :?
Vielen Dank!
Cheers Stelze
ich bin gerade dabei ein Schiffeversenken zu programmieren und komme gerade einfach
nicht weiter! Mein Spiel ist wie folgt aufgebaut:
Ein JFrame für das gesamte Fenster. Hierauf werden zwei Felder gezeichnet, die vom Typ
JPanel sind und als die Spielfelder (Spieler & Gegenspieler) dienen. In der Paint-Methode
dieser Klasse findet die grafische Zeichnung statt. Zunächst wird in der Paint()-Methode
ein Hintergundbild gezeichnet, darauf dann die Linien zur Rasterung, damit ein Feld mit
100 kleinen Quadranten entsteht.
Wir nun geschossen, wird jeweils repaint() aufgerufen und in den jeweiligen Quadranten
entweder ein Tropfen, oder ein Explosions-Icon gezeichnet.
Das funktioniert auch ganz gut.... Jetzt muss ich aber auf dem gegnerischen Feld (funktioniert
ja nach dem gleichen Prinzip, nur mit abgeändertem Hintergrundbild und Icons) noch die Schiffe
einzeichnen. Zunächst werden Labels mit Schiffjpgs auf das gegnerische Feld per Drag & Drop
gezogen. Wird nun das Spiel gestartet, werden die Schiffe in der Panelklasse fest innerhalb von
Paint() gezeichnet und die Labels invisibel in Ihre Ausgangsposition verschoben.
Jetzt kommt das eigentliche Problem:
Wenn nun ein Feld getroffen wurde, muss der Teil des Schiffpics, dessen Quadranten getroffen
wurde, mit entweder einem Explosions- oder einem Tropfenicon überzeichnet werden. Der Rest
des Pics muss trotzdem sichtbar bleiben. Ich habe es momentan so porgrammiert, dass die
Schiffe zu Beginn einmal gezeichnet werden, und danach dann jeweils die getroffen- oder nicht
getroffen- Pics. Trotzdem bleiben die Schiffe vollständig sichtbar und die beschossenen Felder
werden dort nicht angezeigt.
Ich hoffe, man konnte verstehen, was ich meine! Kann mir jemand helfen? Vielleicht gibt es
auch eine schnelle Lösung, ohne dass ich alles umschmeissen muss..... Es ist nämlich alles
ziemlich komplex geworden, und jetzt nochmal alles abändern wäre der Horror! :?
Vielen Dank!
Cheers Stelze