A
AoD
Gast
Hi,
ich habe versucht eine Art HighScore Liste zu erstellen und habe bisher einnen Frame mit einer Liste in der die Einträge angezeigt werden und einen Dialog, der sich öffnet, damit man seinen Namen eingeben kann... Es funktioniert in soweit, dass ich einen namen eingeben kann, dieser auch in die Liste übernommen wird. Allerdings wollte ich es so machen, dass automatisch dann auch vor dem namen die im Spiel erreichten Punkte angezeigt werden (die selber einzugeben wäre ja sinnlos). Verteilt werden die Punkte aber in einer anderen Datei. Nun hatte ich folgendes versucht:
In der HighScoreFrame Klasse:
In der Klasse ImageCanvas:
In der Klasse SpielFrame:
Meine Idee die Punkte in dialogNeuerEintrag() zu bekommen hinkt vermutlich, weil wieder ein neues Objekt erzeugt wird und die Punkte somit wieder auf 0 stehen, oder?
Wäre klasse, wenn vielleicht jemand ne Idee hätte, wie man das so lösen könnte, dass die Punkte die im SpielFrame vergeben wurden in die Liste übernommen werden...
Vielen Dank schonmal!
ich habe versucht eine Art HighScore Liste zu erstellen und habe bisher einnen Frame mit einer Liste in der die Einträge angezeigt werden und einen Dialog, der sich öffnet, damit man seinen Namen eingeben kann... Es funktioniert in soweit, dass ich einen namen eingeben kann, dieser auch in die Liste übernommen wird. Allerdings wollte ich es so machen, dass automatisch dann auch vor dem namen die im Spiel erreichten Punkte angezeigt werden (die selber einzugeben wäre ja sinnlos). Verteilt werden die Punkte aber in einer anderen Datei. Nun hatte ich folgendes versucht:
In der HighScoreFrame Klasse:
Code:
...
void dialogNeuerEintrag()
{
xyz = new ImageCanvas("","", Color.black);
//Erzeuge ein Objekt für den Datenaustausch
HighScoreJDialogData data = new HighScoreJDialogData("");
// Erzeuge einen Dialog und führe diesen aus
// Benutze das eben erzeugte Datenobjekt zum Datenaustausch
HighScoreJDialog d = new HighScoreJDialog(this , "ENTRY" , data);
//Wird der Dialog geschlossen prüfe seine Rückgabedaten:
// Ist das Resultat = OK und der Input != empty...
if (data.result == HighScoreJDialog.DLG_ENDE_OK && !(data.input.equals("")))
{
// ...füge den Input als neuen Eintrag in die Liste ein
eintraege.add( xyz.getPunkte() + " Points for: " + data.input );
}
}...
Code:
...
public ImageCanvas(String datei, String datei2, Color bc)
{
//Speichere alle Parameter des Konstruktors
// in geeigneten Attributen
bilddatei = datei;
bilddatei2 = datei2;
//Setze den Hintergrund
setBackground(bc);
//Setze die X und Y Position
xPos1 = 300;
yPos1 = 440;
leben = 3;
punkte = 0;
//Lade alle Bilder für diese Komponente
loadImage();
}//Ende des Konstruktors
...
public int getPunkte()
{
return punkte;
}
public void setPunkte(int value)
{
punkte = punkte + value;
}
...
In der Klasse SpielFrame:
Code:
...
private ImageCanvas xyz;
xyz = new ImageCanvas("Bild1.gif", "Bild2.jpg", Color.blue);
private int punkte;
...
//Wenn das Ereignis eintritt um Punkte zu bekommen dann:
xyz.setPunkte(100);
...
Meine Idee die Punkte in dialogNeuerEintrag() zu bekommen hinkt vermutlich, weil wieder ein neues Objekt erzeugt wird und die Punkte somit wieder auf 0 stehen, oder?
Wäre klasse, wenn vielleicht jemand ne Idee hätte, wie man das so lösen könnte, dass die Punkte die im SpielFrame vergeben wurden in die Liste übernommen werden...
Vielen Dank schonmal!