The aMaze MIDlet is a 3D game where the user guides the marble through the maze by tilting the phone until the time runs out.
The aMaze 3D game starts with a simple splash screen, and has a brief information about the game in the info screen. Tapping on the info icon, at bottom-left of the screen, during game menu launches the info screen.
Tapping on the screen, after the splash screen, starts the game. Tapping on the close icon, at bottom-right of the screen, during game menu closes the game.
Figure: aMaze game menus
The aMaze 3D game displays helpful tips, when game playback is idle, to inform the user about different game features. Tapping on the pause icon, at bottom-right of the screen, pauses the game and resuming from the pause menu recalibrates the accelerometer sensor.
Figure: aMaze game tips
The aMaze 3D game is played by tilting the phone to guide the marble through the maze. The screen can be zoomed with the help of pinching gesture, and the zoomed view can be toggled with the help of double tap gesture.
Figure: aMaze game views
Figure: Amaze — Architecture
Note that some classes, methods and attributes are omitted.
The following table further explains the purpose of the classes in each package. Note that some of the less essential classes are omitted.
com.nokia.example.amaze |
|
Main.java |
The MIDlet main class. |
SplashScreen.java |
The splash screen implementation. |
com.nokia.example.amaze.gestures |
|
SafeGestureInteractiveZone.java |
The rectangle where the gestures are recognised. |
SafeGestureListener.java |
The interface for gesture listeners. |
SafeGestureRegistrationManager.java |
The intelligent manager for registering gesture listeners. |
com.nokia.example.amaze.model |
|
MarbleModel.java |
The model of the marble. |
Maze.java |
The model of the maze. |
MyTimer.java |
A generic, easy-to-use timer. |
com.nokia.example.amaze.sensors |
|
AccelerationProvider.java |
The interface that provides accelerometer sensor readings. |
AccelerationProviderImpl.java |
The actual implementation of the accelerometer sensor readings provider. |
com.nokia.example.amaze.ui |
|
CameraAnimator.java |
A utility class for camera animations. |
DoubleTapDetector.java |
Listens to touch events and notifies the listener if a double tap event is detected. |
MazeCanvas.java |
The game view that ties everything together. |
Menu.java |
A generic menu with support for customisable menu items. |
WorldBuilder.java |
Contains the methods for creating the game levels. |
For information about implementing the MIDlet, see Implementation.