Rusher project homepage
Rusher is now version 0.6 Beta. One of the most important changes is the extraction of entity-related code from the
Engine class into the
EntityManager class. So instead of writing things like:
I've also added a new MVC Pattern example. Actually, it was one of my experiments to try implementing the MVC Patern in Rusher. This one turned out nice, so I've committed it to the repository. This example is simply a proof of concept, and I might find out other better approaches to using the MVC Pattern in Rusher.
View example demo
View example source
This example is a very simple painter application, consisted of a color chooser, a clear button, and a bitmap canvas where you can draw with your cursor.
The entire application is represented by the
Context class, which extends the
Entity class. There are four components added to this entity:
Context class is pretty simple. It creates four components and adds it to itself. Another important modification to Rusher in version 0.6 is the one-clock-cycle-delayed invocation to the
Component.onAdd() method. In this way, the order in which the components are added to the entity does not affect whether accessing other components in a component's
onAdd() method yields a null value.
Signaller component is pretty much a "signal hub" consisted of several CJSignals signal objects. These signal objects dispatch application events listened by other components. Also, other components can cause these signal objects to dispatch events.
Model component contains the underlying application data, a
BitmapData object representing the canvas. Also, this component defines several public methods that modifies the bitmap data. These methods allow users to change the line color, move the drawing pen position, draw a line, and clear the entire canvas.
View component constructs and displays the visual representation of the application. In addition, this component listens for the mouse event dispatched by these display objects and relays these events to the signal objects in the
Controller component listens the signal objects in the
Signaller component and maps them to command objects. These command objects invokes the public methods provided by the
Model class to modify the underlying bitmap data.
Finally, below are the command classes.
This is the
LineColor command that changes the line color.
This is the
MoveTo command that moves the position of the drawing pen.
This is the
LineTo command that draws a line.
And this is the
Clear command that clears the entire bitmap data.
You may view the source of this example in its entirety here.