Greenfoot: Bei Tastendruck und best. Wert Bild ändern

Hey, liebes Forum!
Wir haben vor kurzem in Informatik mit Java angefangen und sollen jetzt ein kleines Spiel machen, ich bin also blutiger Anfänger.
Mein Spiel: Man steuert mit WASD eine Figur durch ein Labyrinth, sieht aber vom Labyrinth nur das, was von einer Taschenlampe beleuchtet wird, die Taschenlampe hab ich einfach mit Bildern erledigt (schwarzes Bild, in der Mitte die Figur und um die Figur ein transparenter Kreis). Dabei soll die Taschenlampe natürlich auch Energie verbrauchen, was ich mit einer Variable gemacht hab, die bei 100 beginnt. Wenn diese bei 50 ist kommt das Bild mit dem halb so großen transparenten Kreis, wenn sie bei 0 ist kommt das ohne Licht. Wenn man F (die Taste, mit der man die Taschenlampe einschaltet) wieder loslässt, soll sich die Batterie wieder aufladen.
Mein Code wäre jetzt:

Java:
if(Greenfoot.isKeyDown("F")){
            setImage("Typ_100.png");
            Greenfoot.delay(10);
            batterie = batterie - 10;
        }
        else{
            setImage("Typ_0.png");
        }
        if(Greenfoot.isKeyDown("F") & batterie == 50){
            setImage("Typ_50.png");
        }
        if(Greenfoot.isKeyDown("F") & batterie == 0){
            setImage("Typ_0.png");
        }
        if(batterie == 0 & !Greenfoot.isKeyDown("F")){
            batterie = 50;
            Greenfoot.delay(100);
            batterie = 100;
        }

So weit, so gut, nur funktioniert nur der obere Teil. Wenn ich F drücke ist die Taschenlampe an, wenn ichs loslasse aus und auch die Variable zählt von 100 ab runter. Allerdings geht das bis in den negativen Bereich und die Bilder wechseln nicht, wie es eigentlich passieren soll, und auch wenn ich F loslasse lädt sich die Batterie nicht auf. Was hab ich falsch gemacht ???:L
Danke schonmal für eure Hilfe :)
 

Marco13

Top Contributor
Hmja, dieses Greenfoot ist immer ein bißchen schwer nachzuvollziehen: Einige Sachen sind da schon SEHR anders als bei "normaler" (Swing-) Programmierung. Was sowas wie "setImage" genau macht, ist auch nicht direkt ersichtlich.

Das ganze wird wohl (afaik automatisch, "von Greenfoot selbst") immer wieder aufgerufen. Was passiert denn, wenn man da ganz pragmatisch sowas wie
Java:
System.out.println("Start - F pressed? "+Greenfoot.isKeyDown("F")+" Battery: "+batterie);
... // wie vorher
System.out.println("End   - F pressed? "+Greenfoot.isKeyDown("F")+" Battery: "+batterie);
drumrumwickelt?
 

jonas-w

Neues Mitglied
Ich würde es folgendermaßen versuchen:

Java:
boolean keyDown = Greenfoot.isKeyDown("F");
if(keyDown && batterie > 50) {
     setImage("Typ_100.png");
     Greenfoot.delay(10);
     batterie = batterie - 10;
} else if (keyDown && batterie == 50) {
     setImage("Typ_50.png");
} else if(keyDown && batterie == 0) {
     setImage("Typ_0.png");
} else if(!keyDown && batterie == 0) {
     // habe das Delay aufgeteilt, weil
     // sonst die Taschenlampe direkt
     // auf 50% springt.
     Greenfoot.delay(50);
     batterie = 50;
     Greenfoot.delay(50);
     batterie = 100;
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Pinhg Sound in Greenfoot Code einbinden Java Basics - Anfänger-Themen 2
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
M Greenfoot World und Actor Quellcode Java Basics - Anfänger-Themen 13
D incompatible Types Problem in Greenfoot Java Basics - Anfänger-Themen 5
W Schleifen bei Greenfoot Java Basics - Anfänger-Themen 4
Z Greenfoot Variable in einer Datei und nicht in einem Objekt/World speichern Java Basics - Anfänger-Themen 1
A Greenfoot - Objekt im Vordergrund lassen, bei einer scrollbaren Welt ohne zentrierten Actor Java Basics - Anfänger-Themen 3
B Hilfe bei Greenfoot ( random blickrichtung + vor(); Java Basics - Anfänger-Themen 10
BlueFox Greenfoot wait() Java Basics - Anfänger-Themen 10
V [Greenfoot] java.lang.NullPointerException Java Basics - Anfänger-Themen 12
Domi741 [Greenfoot] Zugriff auf Subclass von Actor in Subclass von World Java Basics - Anfänger-Themen 16
T Wegberechnung mit Greenfoot Java Basics - Anfänger-Themen 10
B Erste Schritte Generelle Fragen zu Java / Greenfoot. Java Basics - Anfänger-Themen 8
Q Greenfoot: Art Mario programmieren Java Basics - Anfänger-Themen 7
K Problem mit Greenfoot - aussetzen modellieren? Java Basics - Anfänger-Themen 2
G [Greenfoot] Zeitverzögerung Java Basics - Anfänger-Themen 11
J Wie kann ich Images per Tastendruck anzeigen/einfügen? Java Basics - Anfänger-Themen 3
B Tastendruck zurücksetzen Java Basics - Anfänger-Themen 4
F Langer Tastendruck bei Fernbedienung Java Basics - Anfänger-Themen 3
T Tastendruck simulieren Java Basics - Anfänger-Themen 13
S Beliebigen Tastendruck "einlesen" (ohne Konsole) Java Basics - Anfänger-Themen 3
TheSorm java Schleife beenden per Tastendruck Java Basics - Anfänger-Themen 10
P Klassen Bei KeyEvent in KeyListener den Tastendruck abbrechen Java Basics - Anfänger-Themen 5
X Erste Schritte Spielstart per Tastendruck Java Basics - Anfänger-Themen 10
U Thread reagiert nicht sofort auf Tastendruck Java Basics - Anfänger-Themen 14
T Tastendruck simulieren in JPanel Java Basics - Anfänger-Themen 3
Draculajr Tastendruck abwarten Java Basics - Anfänger-Themen 5
H Tastendruck simulieren | SendKeys Java Basics - Anfänger-Themen 12
S Schleife per Tastendruck abbrechen Java Basics - Anfänger-Themen 7
R Aktion bei Tastendruck Java Basics - Anfänger-Themen 5
E Programmsteuerung per Tastendruck Java Basics - Anfänger-Themen 4
G Tastendruck Java Basics - Anfänger-Themen 13
S Tastendruck abweisen Java Basics - Anfänger-Themen 7
T reaktion auf Tastendruck Java Basics - Anfänger-Themen 2
M Tastendruck. Java Basics - Anfänger-Themen 2
P String zu Date bei jedem Tastendruck parsen Java Basics - Anfänger-Themen 3
123456789sssssaaaa Which is the best way to Print Fibonacci Series in Java? Java Basics - Anfänger-Themen 3
OnDemand Branching Best Practise Java Basics - Anfänger-Themen 7
P JUnitTest Best Practise (Ein Assert pro Test?) Java Basics - Anfänger-Themen 10
J Unit Testing mit vielen Bedingungen - Best Practice? Java Basics - Anfänger-Themen 9
E Arrays nach best Muster füllen Java Basics - Anfänger-Themen 4
N Vererbung Best Practice: Verfeinerte Klassenvariablen in Unterklasse Java Basics - Anfänger-Themen 5
boscho87 Objekte übergeben Best Practice Java Basics - Anfänger-Themen 1
L Best Practice: Klassen übersetzen Java Basics - Anfänger-Themen 4
C Methoden Diagonalen am best. Punkt im zweidimensionales array finden Java Basics - Anfänger-Themen 3
L Best Practise - 'instanceof' oder nicht. Java Basics - Anfänger-Themen 7
D Best Practise für Programmierung Java Basics - Anfänger-Themen 7
K Warum ist ein Singleton kein Best Practise? Java Basics - Anfänger-Themen 3
P Initialisierung einer 5*5 Matrix mit best. Werten Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben