Java Reference
In-Depth Information
onMouseExited make the button Node change color as the mouse passes over it, which tells the user that
the Node is interactive in some way.
The Node startScreen now has two buttons wired up to actions. When the user clicks on the Node
aboutScreen.startButton , a new game is started by calling the function startGame . When the user clicks
on startScreen.aboutButton , the startScreen Node is replaced with the Node aboutScreen using a
WipeReplace . Conversely, when the user clicks on the Node aboutScreen.backButton , a WipeReplace
replaces the Node aboutScreen with the Node startScreen . This allows the user to navigate from the start
screen to the about screen and back. When the user clicks on the Node startScreen.startButton , the
Node startScreen is replaced with the Node gameModel.screen . This starts the game proper.
Round Life Cycle
Once the user is ready to actually play the game, the class GameModel initializes and starts accepting user
input. Playing the game constitutes firing a clown five times at the bucket of water. Let's call that a
round. Each time a clown is fired the application will go from waiting for the user, to animating the
scene, to back to waiting for the user. We will start by looking at how GameModel initializes and then how
the state of the game is managed. Let's take a look at the class GameModel and get into the meat of the
Listing 11-3. GameModel.fx (partial)
public class GameModel {
//local variables omitted for brevity, please see the source code.
function initScreen():Void{
screen.powerLevel.visible = true;
screen.backFromPlayButton.visible = false;
screen.playAgainButton.visible = false;
screen.gameOverText.visible = false;
Main.makeButton(screen.backFromPlayButton, goBack);
Main.makeButton(screen.playAgainButton, playAgain);
screen.onMouseWheelMoved = mouseWheelMoved;
screen.onMouseClicked = mouseButtonClicked;
clownNode = Main.offsetFromZero(screen.flyingClown);
cannonNode = Main.offsetFromZero(screen.cannon);
bucketNode = Main.offsetFromZero(screen.waterBucket);
balloonNode = Main.offsetFromZero(screen.bonusBalloon);
net = Main.offsetFromZero(;
Search WWH ::

Custom Search