| A simple timer class that allows you to keep track of how much time
| has passed between events.
|
| You use this class by creating a timer as a member field in your actor (or whatever):
| <pre>
|
| Private SimpleTimer timer = new SimpleTimer();
| </pre>
|
| Then when you want to start the timer (for example, when a shot is fired), you call the mark() method:
|
| <pre>
|
| Timer.mark();
| </pre>
|
| Thereafter, you can use the millisElapsed() method to find out how long it's been since mark()
| was called (in milliseconds, i.e. thousandths of a second).  So if you want to only allow the player to fire a shot every second, you
| could write:
|
| <pre>
|
| If (timer.millisElapsed() > 1000 && Greenfoot.isKeyDown("space"))
|* {
 *     // Code here for firing a new shot
 *     timer.mark(); // Reset the timer
 * }
 * </pre>
 * 
 * @author Neil Brown
 * @version 1.0
 */
public class SimpleTimer
{    
private long lastMark = System.currentTimeMillis();
|
|/**
| Marks the current time.  You can then in future call
| millisElapsed() to find out the elapsed milliseconds
| since this mark() call was made.
|
| A second mark() call will reset the mark, and millisElapsed()
| will start increasing from zero again.
|
public void mark()
    {
        lastMark = System.currentTimeMillis();
    }
    
    
| Returns the amount of milliseconds that have elapsed since mark() | was last called. This timer runs irrespective of Greenfoot's | act() cycle, so if you call it many times during the same Greenfoot frame, | you may well get different answers. | public int millisElapsed() { return (int) (System.currentTimeMillis() - lastMark); } }

.   mark
.   millisElapsed




12 neLoCode + 25 LoComm