Brauche Hilfe bei Methode

Java Neuling

Mitglied
Ich möchte, dass sich die Methode bei einer Kollision mit dem Spieler beendet und dem Spieler Punkte gutgeschrieben werden.

Java:
 public void Geldsack(int Position, Graphics g,int y){
    	
    	String filename = "Geldsack.gif";
        Image img = Toolkit.getDefaultToolkit().getImage(filename);
        ((Graphics2D)g).drawImage(img, (int)Position, (int)y+Höhe, this);
        
        if(Position >= x-20 && Position < x+80 && y+Höhe>= 402 && y+Höhe<412 ){
        	Punkte += 10;
          
            //???


        }
    	   

    }

Was muss ich bei den Fragezeichen einsetzten um die Methode zu beenden?
Was muss ich ändern, dass nur einmal Punkte gutgeschrieben werden?

Danke im Vorraus! 😉
 
Die wird so oder so beendet, du hast doch keine Schleife da. Optional kannst du die mit "return" beenden.
Wie 2. Frage verstehe ich nicht.
p.s. Methodennamen so wie Variablen werden klein geschrieben.
 
Naja, das ist jetzt ein wenig aus dem Zusammenhang gerissen...
Wenn du etwas Zeichnest, was nicht mehr da sein sollst, dann musst du den rest ohne deinen Geldsack zeichnen, das hat nichts mit Beenden von Methoden zu tun.
 
Führe doch eine Variable ein "geldsackExist" und zeichne ihn nur, wenn es true ist, und bei Punkteeinsammeln setzt du den eben auf false.
 
Java:
    public void Geldsack(int Position, Graphics g,int y){
    	boolean Geldsackexists=true;
    	
    	if(Geldsackexists){
    	
        String filename = "Geldsack.gif";
        Image img = Toolkit.getDefaultToolkit().getImage(filename);
        ((Graphics2D)g).drawImage(img, (int)Position, (int)y+Höhe, this);
    	}
        
        if(Position >= x-20 && Position < x+80 && y+Höhe>= 402 && y+Höhe<412 ){
        	Geldsackexists=false;

        }

    }

Meinst du so?
Irgendwie bringt das nichts.
 
Naja, die Variable muss schon etwas globaler sein, sonst existiert die ja nur in dem Methoden-Stack.
und p.s. Variablennamen werden klein geschrieben
 
Ups...stimmt.
Danke!

Es funktioniert nun.
Aber wenn ich jetzt zwei Geldsäcke erzeuge werden beide gelöscht, auch wenn nur einer eingesammelt wird.
Gibt es da eine andere Möglichkeit?
 
Zuletzt bearbeitet:
Hallo Java Neuling,

du könntest eine Klasse Geldsack schreiben, die ein Bild, eine Position und ein Flag beinhaltet.

Dann erstellst du für jeden Geldsack der existieren soll, eine neue Instanz dieser Klasse und verwaltest diese Geldsäcke über ein Array oder eine Liste. Damit könntest du alle ganz einfach in einer Schleife malen und verwalten.

Java:
for (Geldsack sack : geldsackListe) {
    if (sack.isVisible())
        sack.draw();

    // ... usw.
}

Wenn du dich für die Spieleprogrammierung interessierst ist es eine gute Idee, sich Gamestates anzusehen 🙂

Beste Grüße

lama
 
Zuletzt bearbeitet:

Zurück
Oben