Methoden Guten Tag , ich wollte so machen dass wenn meine frog an eine fly/bee geht dann an meine Tafel geht der zahl +1 hoch.

anny2716

Neues Mitglied
//wie kann ich ein punktenzähler erstellen??
import GLOOP.*;

//ich habe eine klaase für bee / fly/frog
class Game
{

GLKamera dieKamera;
GLLicht dasLicht;
GLSchwenkkamera hKamera;
GLBoden dasBoden;
GLHimmel dasHimmel;
GLTastatur dieTast;
frog frog1;
GLTafel background;
GLTafel tafel1;
fly fly1;
boolean hoch1=true;
int eTest;
bee bee1;

Game()
{
tafel1 = new GLTafel(-6500,3500,1000,1000,1000);
tafel1.setzeTextur("Zeichen.png");
dieTast = new GLTastatur();
dasLicht = new GLLicht();
frog1 = new frog(500,-1150,150);
dieKamera = new GLKamera();
dieKamera.setzePosition(0,0,8000);
background = new GLTafel(0,1000,1000,15000,10000,"himmel2.jpg");
fly1 = new fly(0,3200,0);
bee1 = new bee(0,3200,0);
eTest =0;
tafel1.setzeText(""+eTest,20);

while(!dieTast.esc())
{

if(dieTast.rechts())
{
frog1.rechts();
Sys.warte(5);
}
if(dieTast.links())
{
frog1.links();
Sys.warte(5);
}

if(frog1.frog.gibY()>500)
hoch1 = false;
if(frog1.frog.gibY()<-1150)
hoch1 = true;

if(hoch1)
{
frog1.oben1();
Sys.warte(5);
}
else
{
frog1.unten1();
Sys.warte(5);
}
//kollision fly
double dist = Math.sqrt( Math.pow(frog1.frog.gibX()-fly1.tafel.gibX(),2)+Math.pow(frog1.frog.gibY()-fly1.tafel.gibY(),2));
if (dist<150+200){
fly1.tafel.loesche();

//!!ich habe es so versucht aber geht nicht

tafel1.setzeText (Math.pow"(2, 2)",500);
}

double dist3 = Math.sqrt( Math.pow(frog1.frog.gibX()-bee1.tafel2.gibX(),2)+Math.pow(frog1.frog.gibY()-bee1.tafel2.gibY(),2));
if (dist3<150+200){
bee1.tafel2.loesche();
tafel1.setzeText("++1",500);
//flyzaehler ++;
}

if(fly1.gibY()<=8000)
{
fly1.tafel.verschiebe(15,-30,0);
Sys.warte(50);
}
if(bee1.gibY()<=8000)
{
bee1.tafel2.verschiebe(-10,-30,0);
Sys.warte(50);
}

}
}
}
 
Zuletzt bearbeitet:
Um einen Punktezähler zu erstellen, könntest du eine Variable definieren, die deinen aktuellen Punktestand repräsentiert. Du könntest beispielsweise eine int-Variable namens "score" definieren und sie auf 0 setzen.

Dann, wenn der Frosch mit einer Fliege oder Biene kollidiert, könntest du den Wert von "score" erhöhen. Zum Beispiel:
Java:
double dist = Math.sqrt( Math.pow(frog1.frog.gibX()-fly1.tafel.gibX(),2)+Math.pow(frog1.frog.gibY()-fly1.tafel.gibY(),2));
if (dist<150+200){
  fly1.tafel.loesche();
  score++;
}

double dist3 = Math.sqrt( Math.pow(frog1.frog.gibX()-bee1.tafel2.gibX(),2)+Math.pow(frog1.frog.gibY()-bee1.tafel2.gibY(),2));
if (dist3<150+200){
  bee1.tafel2.loesche();
  score++;
}

Um den aktuellen Punktestand auf dem Bildschirm anzuzeigen, könntest du die GLTafel-Methode "setzeText" verwenden, um den aktuellen Wert von "score" auf der Tafel anzuzeigen. Zum Beispiel:
Java:
tafel1.setzeText("Punkte: " + score, 20);

Dies würde den Text "Punkte: [aktueller Wert von score]" auf der Tafel anzeigen, wobei 20 die Schriftgröße ist. Du könntest diese Zeile in deiner "while"-Schleife aufrufen, um sicherzustellen, dass der Punktestand immer aktuell angezeigt wird.

Um den Punktezähler weiter zu implementieren, könntest du zunächst eine Variable namens "score" definieren und sie auf 0 setzen:
Java:
int score = 0;
Code:

Dann, wenn der Frosch mit einer Fliege oder Biene kollidiert, könntest du den Wert von "score" erhöhen:

Java:
double dist = Math.sqrt( Math.pow(frog1.frog.gibX()-fly1.tafel.gibX(),2)+Math.pow(frog1.frog.gibY()-fly1.tafel.gibY(),2));
if (dist<150+200){
  fly1.tafel.loesche();
  score++;
}

double dist3 = Math.sqrt( Math.pow(frog1.frog.gibX()-bee1.tafel2.gibX(),2)+Math.pow(frog1.frog.gibY()-bee1.tafel2.gibY(),2));
if (dist3<150+200){
  bee1.tafel2.loesche();
  score++;
}

Um den aktuellen Punktestand auf dem Bildschirm anzuzeigen, könntest du die GLTafel-Methode "setzeText" verwenden, um den aktuellen Wert von "score" auf der Tafel anzuzeigen:
Java:
tafel1.setzeText("Punkte: " + score, 20);

Dies würde den Text "Punkte: [aktueller Wert von score]" auf der Tafel anzeigen, wobei 20 die Schriftgröße ist. Du könntest diese Zeile in deiner "while"-Schleife aufrufen, um sicherzustellen, dass der Punktestand immer aktuell angezeigt wird.

Eigentlich antworte ich nicht, auf Fragen ohne Code-Blöcke, aber heute ist Montag. 🙂
 
Du kannst dir auch einen Wrapper für einen Counter schreiben, den du dann z.B. auch in Maps verwenden kannst.
Java:
public class Counter {
    private int counter = 0;

    public int getValue() {
        return counter;
    }

    public void set(int value) {
        this.counter = value;
    }

    public void increase() {
        this.counter++;
    }

    public void decrease() {
        this.counter--;
    }

    public void add(int d) {
        this.counter +=d;
    }
}
 

Zurück
Oben