I am making a simulation for a rocket launch , i want to show a countdown and after the countdown, the rocket will move towards the sky. If its possible can u pls tell me how??


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.awt.Color; public class Timer extends Actor { /** * Act - do whatever the Timer wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ private int time = 20 ; private int count = 65 ; public void act() { // Add your action code here. if (time == 0 ) { return ; } if (counter()) { time--; count = 65 ; } display(); } private boolean counter() { if (count > 0 ) { count--; } return count == 0 ; } private void display() { setImage( new GreenfootImage( "time left before next wave: " + time, 30 , Color.WHITE, Color.BLACK)); } public void setTime() { time = 20 ; } public boolean isTimeUp() { return time == 0 ; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | /** This class creates a countdown timer object. * It displays like a digital timer clock. * The value to set the timer is given in seconds; however, is converted to approximate act cycles within the class. * All timers created from this class will start automatically unless using the 'Timer(int, boolean)' constructor with boolean set to 'false'. */ import greenfoot.*; import java.awt.Color; public class Timer extends Actor { private int count; // the counter field private int initialCount; // the initial time given before event occurs private boolean running; public Timer() { this ( 0 , true ); } public Timer( int timeBeforeEvent) { this (timeBeforeEvent, true ); } public Timer( int timeBeforeEvent, boolean getsStarted) // int value given in seconds { setTimer(timeBeforeEvent); updateImage(); running = getsStarted; } public void setTimer( int timeBeforeEvent) { initialCount = 60 * timeBeforeEvent; count = -initialCount; } private void updateImage() { String prefix = "T - " ; if (count >= 0 ) prefix = "T + " ; int time = count * ( int )Math.signum(count); time = time / 60 ; int secs = time % 60 ; time = (time - secs) / 60 ; int mins = time % 60 ; int hrs = (time - mins) / 24 ; String h = "00" +hrs; while (h.length() > 2 ) h = h.substring( 1 ); String m = "00" +mins; while (m.length() > 2 ) m = m.substring( 1 ); String s = "00" + secs; while (s.length() > 2 ) s = s.substring( 1 ); String text = prefix + h + "h : " + m + "m : " + s + "s" ; GreenfootImage textImage = new GreenfootImage(text, 20 , Color.black, new Color( 0 , 0 , 0 , 0 )); GreenfootImage image = new GreenfootImage(textImage.getWidth()+ 20 , textImage.getHeight()+ 10 ); image.drawRect( 0 , 0 , image.getWidth()- 1 , image.getHeight()- 1 ); image.drawImage(textImage, (image.getWidth()-textImage.getWidth())/ 2 , (image.getHeight()-textImage.getHeight())/ 2 ); setImage(image); } public void act() { if (running) { count++; if ((count + initialCount) % 60 == 0 ) updateImage(); } } public int getTime() { return count / 60 ; } public void start() { running = true ; } public void stop() { running = false ; } } |
1 2 3 4 5 6 7 8 9 10 | // changed this method public int getTime() { return (count + initialCount) / 60 - initialCount / 60 ; } // added this method public boolean isRunning() { return running; } |