| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectworld.VoidWorld
public abstract class VoidWorld
  
  A Class representing an imperative World and the related methods
  for drawing the world and handling various events.  In order to
  implement a functioning World you must extend this class,
  and implement an onDraw method.
  Other handler methods (tickRate,
  onTick, onMouse, onKey, onRelease, stopWhen, and lastScene) are optional, and can be
  overridden to add new functionality.  
See the individual methods for detailed documentation.
Below is a simple example of aVoidWorldthat adds a new point at each mouse click. The world contains aSceneand a newCircleis placed for each"button-down"event received.import image.*; import world.VoidWorld; public class MousePointsVoidWorld extends VoidWorld{ // Simple Main Program public static void main(String[] args) { new MousePointsVoidWorld().bigBang(); } // The inner Scene Scene scene = new EmptyScene(200, 200); // Create a new World MousePointsVoidWorld(){} // Draw by returning the inner Scene public Scene onDraw(){ return this.scene; } // On a mouse click add a circle to the inner Scene public void onMouse(int x, int y, String me){ if(me.equals("button-down")){ this.scene = this.scene.placeImage( new Circle(20, "solid", "red") .overlay(new Circle(20, "outline", "black")), x, y); } } }After a few mouse clicks, the window will look something like this:

| Field Summary | |
|---|---|
| static double | DEFAULT_TICK_RATEDefault Tick rate for the world: ~33 frames per second | 
| static java.lang.String | KEY_ARROW_DOWNKey arrow-down event String | 
| static java.lang.String | KEY_ARROW_LEFTKey arrow-left event String | 
| static java.lang.String | KEY_ARROW_RIGHTKey arrow-right event String | 
| static java.lang.String | KEY_ARROW_UPKey arrow-up event String | 
| static java.lang.String | MOUSE_DOWNMouse down (button-down) event String | 
| static java.lang.String | MOUSE_DRAGMouse down & move (drag) event String | 
| static java.lang.String | MOUSE_ENTERMouse window enter (enter) event String | 
| static java.lang.String | MOUSE_LEAVEMouse window leave (leave) event String | 
| static java.lang.String | MOUSE_MOVEMouse motion (move) event String | 
| static java.lang.String | MOUSE_UPMouse up (button-up) event String | 
| Constructor Summary | |
|---|---|
| VoidWorld() | |
| Method Summary | |
|---|---|
|  VoidWorld | bigBang()Kick off the interaction/animation. | 
|  boolean | equals(java.lang.Object o)Make sure that changes are redrawn every time | 
|  Scene | lastScene()Returns the Scene that should be displayed when the interaction/animation completes ( stopWhen()returns true). | 
| abstract  Scene | onDraw()Return a visualization of this VoidWorld as a Scene. | 
|  void | onKey(java.lang.String event)Change this VoidWorld when a key event is triggered. | 
|  void | onMouse(int x,
        int y,
        java.lang.String event)Change this VoidWorld when a mouse event is triggered. | 
|  void | onRelease(java.lang.String event)Change this VoidWorld when a key is released. | 
|  void | onTick()Change this VoidWorld based on the Tick of the clock. | 
|  boolean | stopWhen()Determine if the World/interaction/animation should be stopped. | 
|  double | tickRate()Return the tick rate for this VoidWorld in seconds. | 
| Methods inherited from class java.lang.Object | 
|---|
| getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Field Detail | 
|---|
public static double DEFAULT_TICK_RATE
public static java.lang.String MOUSE_DOWN
public static java.lang.String MOUSE_UP
public static java.lang.String MOUSE_ENTER
public static java.lang.String MOUSE_LEAVE
public static java.lang.String MOUSE_MOVE
public static java.lang.String MOUSE_DRAG
public static java.lang.String KEY_ARROW_UP
public static java.lang.String KEY_ARROW_DOWN
public static java.lang.String KEY_ARROW_LEFT
public static java.lang.String KEY_ARROW_RIGHT
| Constructor Detail | 
|---|
public VoidWorld()
| Method Detail | 
|---|
public abstract Scene onDraw()
Scene.
    See EmptyScene, Scene.placeImage(Image, int, int), and
    Scene.addLine(int, int, int, int, String) for documentation on
    constructing Scenes
public double tickRate()
public void onTick()
public void onMouse(int x,
                    int y,
                    java.lang.String event)
Possible Mouse Events
| "button-down" : | The user presses a mouse button in the VoidWorld window | 
| "button-up" : | The user releases a mouse button in the VoidWorld window | 
| "move" : | The user moves the mouse in the VoidWorld window | 
| "drag" : | The user holds a mouse button and moves the mouse in the VoidWorld window | 
| "enter" : | The user moves the mouse in-to the VoidWorld window | 
| "leave" : | The user moves the mouse out-of the VoidWorld window | 
public void onKey(java.lang.String event)
Special Key
| "up" : | The user presses the up-arrow key | 
| "down" : | The user presses the down-arrow key | 
| "left" : | The user presses the left-arrow key | 
| "right" : | The user presses the right-arrow key | 
public void onRelease(java.lang.String event)
Special Keys
| "up" : | The user presses the up-arrow key | 
| "down" : | The user presses the down-arrow key | 
| "left" : | The user presses the left-arrow key | 
| "right" : | The user presses the right-arrow key | 
public boolean stopWhen()
lastScene() to be used to draw the final
 Scene.
public Scene lastScene()
stopWhen()
 returns true).
public VoidWorld bigBang()
public boolean equals(java.lang.Object o)
equals in class java.lang.Object| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||