Design

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.

Figure: aMaze icon, splash and info screens

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

The MIDlet consists of the following important classes:

  • Main—The MIDlet main class.

  • SplashScreen—The splash screen implementation.

  • SafeGestureInteractiveZone—The rectangle where the gestures are recognised.

  • SafeGestureListener—The interface for gesture listeners.

  • SafeGestureRegistrationManager—The intelligent manager for registering gesture listeners.

  • GameModel—The game model which knows where everything is.

  • MarbleModel—The model of the marble.

  • Maze—The model of the maze.

  • MyTimer—A generic, easy-to-use timer.

  • AccelerationProvider—The interface that provides accelerometer sensor readings.

  • AccelerationProviderImpl—The actual implementation of the accelerometer sensor readings provider.

  • CameraAnimator—A utility class for camera animations.

  • DoubleTapDetector—Listens to touch events and notifies the listener if a double tap event is detected.

  • InteractionManager—Handles all the user interaction events.

  • MazeCanvas—The game view that ties everything together.

  • Menu—A generic menu with support for custom menu items.

  • WorldBuilder—Contains the methods for creating the game levels.

For a complete list of the MIDlet's packages and classes, see section: MIDlet packages and classes

For information about implementing the MIDlet, see section: Implementation.