Punktestand

Alles was mit dem Mobility-Pack zusammen hängt.

Moderator:wegus

Antworten
georgie
Beiträge:11
Registriert:28.05.2009, 15:35
Punktestand

Beitrag von georgie » 29.05.2009, 17:54

hi leute
da das letzte experiment mit den variablen im textfeld so schön geklappt hat, habe ich diesmal versucht einen art punktestand zu erschaffen. Das Prinzip beruht auf einem, mit dem Maustasten beweglichem Objekt, dass falls es eine anderes Objekt berührt, die variable "punkte" um 10 erhöht. Die Punkteanzahl wird selbst wieder durch g.drawString ausgegeben.

Das Problem, dass auftacht ist folgendes: sobald mein Objekt mit dem anderen zusammenstößt wird der Punktestand wirklich um 10 erhöht, jedoch nur für ca. 1 sekunde, da ich gleichzeit mit der Kollision mein Objekt wieder an den Startpunkte setzte und somit die Voraussetzung der Kollision nicht mehr gegeben ist.
Hier der Code der sich um die Variable "punkte" und dessen Ausgabe dreht. Falls ihre mehr benötigt, sagt es bitte.

Code: Alles auswählen

        int punkte=0; 
        
    

    if (col3==true)
          punkte=punkte+10;

   
        g.setColor(255,255,255); //Font-Color
      g.drawString("Punkte: " + punkte, 10,10, Graphics.TOP | Graphics.LEFT);
greetz

Benutzeravatar
Baldur
Beiträge:152
Registriert:21.11.2008, 16:36

Beitrag von Baldur » 29.05.2009, 18:09

Die Variable "punkte" ist scheinbar eine lokale Variable, die nur innerhalb dieser einen Funktion existiert und dadurch auch bei jedem Aufruf der Funktion neu mit 0 initialisiert wird.

Wenn du möchtest, daß die Variable über die ganze Lebenszeit deines Programms weiterlebt, mußt du sie als Klassenvariable außerhalb der Funktion deklarieren:

Code: Alles auswählen

class App {
    int punkte = 0;

    void f() {
        if (...) {
            punkte = punkte + 10;
        }
        
        g.drawString(...);
    }
}

georgie
Beiträge:11
Registriert:28.05.2009, 15:35

Beitrag von georgie » 29.05.2009, 18:18

es klapp
danke dir :)

greetz

Antworten