|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object world.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 aVoidWorld
that adds a new point at each mouse click. The world contains aScene
and a newCircle
is 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_RATE
Default Tick rate for the world: ~33 frames per second |
static java.lang.String |
KEY_ARROW_DOWN
Key arrow-down event String |
static java.lang.String |
KEY_ARROW_LEFT
Key arrow-left event String |
static java.lang.String |
KEY_ARROW_RIGHT
Key arrow-right event String |
static java.lang.String |
KEY_ARROW_UP
Key arrow-up event String |
static java.lang.String |
MOUSE_DOWN
Mouse down (button-down) event String |
static java.lang.String |
MOUSE_DRAG
Mouse down & move (drag) event String |
static java.lang.String |
MOUSE_ENTER
Mouse window enter (enter) event String |
static java.lang.String |
MOUSE_LEAVE
Mouse window leave (leave) event String |
static java.lang.String |
MOUSE_MOVE
Mouse motion (move) event String |
static java.lang.String |
MOUSE_UP
Mouse 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 |