This site requires JavaScript, please enable it in your browser!
Greenfoot back
FordScorpio
FordScorpio wrote ...

2013/4/29

Zeitzähler Timecounter

FordScorpio FordScorpio

2013/4/29

#
Hello, i want to make a kind of counter in my game. This counter is to function as a clock, but he starts at zero and counts more and more until the game is over then. art or a stopwatch seconds counter. Thank you!!! Hallo, ich möchte eine art counter machen. Dieser counter soll wie eine Uhr funktionieren, aber er fängt bei null an und zählt immer weiter bis das spiel zu ende ist. eine art stopuhr oder sekundenzähler. Dankeschön!!!
danpost danpost

2013/4/29

#
So, you want a game timer (which is basically a counter that counts seconds; or something close to that). It will probably be best to count act cycles, but to display about 1/60 of the number of cycles. Create a counter object and use an instance field to count the act cycles. Each act cycle, increment the field and 'if the field is divisible by 60', update the counter display.
// use instance fields
private int cycleCount = 0;
private static Counter counter = new Counter("Time");
private static boolean timerStopped = false;
// in act method or method it calls
if (!timerStopped)
{
    cycleCount++;
    if (cycleCount % 60 == 0) counter.setValue(cycleCount/60);
}
You will need a method to stop the timer and another to get its value:
public static void stopTimer()
{
    timerStopped = true;
}

public static int getTime()
{
    return counter.getValue();
}
You will be able to use 'ClassName.methodName()' to calls these methods.
FordScorpio FordScorpio

2013/4/30

#
Hello, where must I put in these codes? Hallo, wo muß ich diese Codes einfügen? Thank you! Dankeschön!
Solringolt Solringolt

2013/4/30

#
You must put that in your main world I think. Du must das in dem HauptWorld hinfügen denke ich.
Fordscorpio2 Fordscorpio2

2013/5/8

#
Dennis?:D
Fordscorpio2 Fordscorpio2

2013/5/8

#
wenn du es herausgefunden hast sag mir mal in der schule bescheid ok? ich krigs nic hin:D lg Jan
danpost danpost

2013/5/8

#
If you are going to need a way to reset the timer (to use it more than once), do the following
// first, change
private int cycleCount = 0;
// to
private static int cycleCount = 0;

// then, add this method
public static void resetTimer()
{
    stopTimer();
    cycleCount = 0;
}
The first part should probably be done, anyway; as 'cycleCount' does not belong to any individual object, but to the timer itself, which is 'static'.
Fordscorpio2 Fordscorpio2

2013/5/8

#
und wie fügt man nochmal ein bild ein ? ich hab if (canSee(rasWagerecht.class)) { setImage(image,"krankwagen"); Greenfoot.stop(); } gemacht aber bei image sagt der dan fehler
danpost danpost

2013/5/8

#
You need the name of the image file. Something like
setImage("krankwagen.png");
Fordscorpio2 Fordscorpio2

2013/5/8

#
Yes, now i had it , but whenn i driive to the wall greenfoot stops,but the krankenwagen dont change image Like this
  • if (canSee(rasWagerecht.class))
  • { setImage("krankwagen.png");
  • Greenfoot.stop();
  • }
danpost danpost

2013/5/8

#
Try this:
if (canSee(rasWagerecht.class))
{
    setImage("krankwagen.png");
    getWorld().repaint();
    Greenfoot.stop();
}
Fordscorpio2 Fordscorpio2

2013/5/8

#
thanks but i get an error message when i crash the wall
schetefan24 schetefan24

2013/5/10

#
which error message? I think that you are checking a coordinate out of the world in the moment when you crash the wall (however it looks like) look in your code for a statemant that adds something to your position and is checking what there is auch gerne nochmal auf deutsch ;) ich geh mal davon aus, dass deine Wand am Rand der Welt ist. wenn du in deinem Quellcode jetzt irgendeine Passage hat, die deine aktuelle position verwendet und noch etwas dazu addiert (oder abzieht), dann kann es passieren, dass er eine position außerhalb der Welt aufrufen möchte, was zwangsläufig zu einem Abbruch führt, weil diese Koordinate nicht existiert. mal ein ganz kleiner Auszug aus meinem Quellcode, woran man das einfach erklären kann: (das erstbeste Beidpiel das ich gefunden habe :D
getOneObjectAtOffset(10, 0 ,Trampolin.class)
getOneObjectAtOffset liefert immer relativ zur eigenen Positionein Objekt zurück in den Klammern werden die verschiebungen des Suchfeldes in X und Y Richtung angegeben, sowie die Klasse nach der gesucht werden soll in meinem Beispiel wird 10 Felder rechts von mir nach einem Objekt der Klasse Trampolin gesucht ich hoffe, dass das verständlich war :D (bitte füg hier mal die Fehlermeldung und den Code, der in der angegeben Zeile steht (Fehlermeldung anklicken), ein ) schetefan24
You need to login to post a reply.