Enchanted Woods
- Course project in Programming of Interactive Systems at Université Paris-Saclay
- Team: Anqi YANG and Annina SPILIA
- Date: Sep 2020 - Oct 2020
- My Contribution: Implemented auto-moving characters, 5-click interaction, character creation page, help page, status bar, UI Design, and drawing of the storyboard.
- Technology: JavaFx, MVC pattern
Interactive maze game developed with JavaFX
Storyboard
Gaming process
- Launch the game
- Customize the appearance of the gaming character
- Select gaming difficulty level
- Start the game
- Goal: Get out of the maze within a limited time.
Interactions
- Move the character with arrow keys
- Avoid contact with ghosts
- Obtain the key
- Click to burst the bubble and pick up tools such as:
- Timer: gain extra time for the game
- Magic stick: draw a path, and the character will follow it to move automatically
- Drag and drop the axe to chop off the corresponding trees
Implemented Functionalities
Before starting the game:
- Route between different pages according to instruction
- Drag and drop to customize the appearance of the character
- Select the level of difficulty
- Watch the tutorial before starting to play the game
Watching the Tutorial
Starting the Game
- Navigate the character around with arrow keys
- Remaining time: the character needs to get out of the maze before time runs out, otherwise, the game will restart
- 2 auto-moving ghosts (Avoid them!):
- The ghosts move randomly every 0.5s
- The game will detect collision with the character and the ghosts every 0.5s
- The character will get killed if they come in contact with the ghosts, and the game will restart
Game Tools
Bubble
Inside the bubble, there are hidden game tools. Burst the bubble to obtain these tools to help you complete the game!
- Click the bubble 5 times. When being clicked, the bubble will burst and randomly reveal one of the following tools:
- Timer: collect the timer by dragging, and you will gain additional time
- Magic stick: click the magic stick by dragging, and the magic stick on the toolbar will be enabled; the number will change accordingly
- After the bubble is exploded and tools are collected, this cell will allow the character to pass
Magic Stick
The magic stick can attract the cat (just like a cat teaser wand!), use it to draw a path, and the cat character will walk along the drawn path automatically.
- Click the magic stick when you have it (number of the magic sticks > 1), then the cursor will change to a magic stick icon.
- Press Shift + D while hovering the mouse to draw the path. The cat character will start to navigate automatically, following the drawn path.
- The magic stick can only last for 8 seconds; it will be disabled, and the cursor will return to its default state.
Axe
The axe is used for chopping down trees. Use it to clear obstacles in your path!
- Drag the axe from the toolbar:
- After dragging the axe out of the toolbar, trees in the maze with corresponding colors will shake slightly.
- When the axe is over a tree with the same color, that tree will shake heavily.
- When you drop the axe on this tree, the tree will gradually disappear.
- Nothing will happen if an axe is dropped on a tree of a different color.
- After the tree is chopped off, this cell will allow the character to pass.
Gaming Status
- A pop-up window will show up if the character wins or loses the game
- A pop-up window will show up if the cat reaches the exit without the key
Another JavaFx Game: Minesweeper
In order to practice JavaFX for this maze project, I also created an interactive minesweeping game by myself.
Basic Minesweeper Function
- The player can left-click to open a cell. If there is a mine underneath, then the game is over. If not, it shows how many mines are around. If there are no mines around, it automatically opens all adjacent cells with no neighboring mines.
- The player can right-click to flag/unflag a cell if they think there is a mine underneath.
- The player can start a new game or exit.
State Indicator
- The “Your Stars” label shows the number of stars the player has collected.
- The “Remaining time” label shows the remaining time. There is a countdown timer, and if time is up, then the game is over. If the remaining time is less than 20 seconds, the color of the text will change to red to warn the player.
- A label shows the number of flagged mines out of all mines.
- A label shows the number of opened cells out of all cells.
- If the player wins or loses, a dialog box will appear. The player can see the number of collected stars, time spent in the game, and the reason for losing (only if they lose) in the dialog box.
Advanced Function
- Collect Stars:
- The player needs to collect at least 5 stars to win the game. If the star number is less than 5, its color is red; otherwise, its color is black.
- If the player drags a star icon in the minefield, the number of collected stars increases by 1.
- The player will see the animation on the right sidebar when dragging the star.
- Gain Time:
- If the player clicks a clock icon in the minefield, the remaining time increases by 15 seconds.
- The player will see the animation on the right sidebar when clicking the clock.
- If the remaining time is less than 20 seconds, the system will remind the player to pick up clocks. The clock icons in the minefield will start flashing.