Cannon is a basic trajectory simulation/game. In Custom Mode, you create the target via coordinates and can change a variety of variables to try hitting it. In Random Mode the targets are randomly placed and you score according to the number of targets on screen and the number of hits for an individual projectile.
Cannon originated as a graphing calculator program and excluding the calculator this is my first 2D-animated program. That said, don't expect much from it.
Unfortunately, all my time is going towards higher-priority apps that are more successful (better or more constructive reviews), so I probably won't get back to Cannon for awhile if ever.
This is the timeline of Cannon and my programming experiences from initial creation to release on Android.
~1997: With the help of my dad for the basic trajectory equation, I originally programmed Cannon on my Casio fx-7400G graphing calculator. I eventually added wind, a target, and a fuze.
My 2010 New Years resolution was to extensively learn a programming language by the end of the year, which essentially means decent 2D or basic 3D applications.
April 15, 2010: I began learning Java with an online friend using Eclipse SDK and quickly became hooked to the point of holding off sleep well into the next day on several occasions.
May 1, 2010: I learned Swing (Java GUI) with my project for calculating the value of building purchases in the \'World War\' game for Android/iPhone.
May 6, 2010: I began learning Android development with my other app, Coinflip.
May 15, 2010: Coinflip was my first app to be released on the Android Market.
June 16, 2010: Began working on Cannon for Android and learning 2D animated rendering.
June 27, 2010: Cannon released to the Android Market!
- Added: Help section in About explaining controls and scoring.
- Added: Projectile radius setting in the Custom game type.
- Changed: Icon updated to match style of v2, same idea as old icon but with fully transparent background.
- Changed: Reorganized preferences.
- Changed: Limit characters that can be typed in preference text boxes.
- Changed: Process is properly killed when exiting with back button from first screen.
- Changed: Screen is no longer restarted after closing preferences, text field values are reloaded if they were reset.
- Added: Game type selection screen offering random target (v2-mode only) and the original custom game type.
- Changed: Moved Fire button to right of screen in landscape orientation.
- Added: Permissions to access Internet, prevent phone from sleeping, and read phone state.
- Added: Ads (menus only).
- Tweaked: Grid alignment.
- Tweaked: 1G value changed from 9.81 to Android built-in constant (9.80665).
- Added: Touching the screen will fire/refire.
- Changed: Validity of color settings checked when set instead of when scene is loaded.
- Removed: History and Changelog dialogs.
- Added: Classic Mode to preserve the v1 style.
- Reprogrammed using AndEngine. "v2-mode" includes additional features listed below.
- Realistic bounce collision physics.
- Solid target instead of outlined target of dots.
- In-game overlay displaying current angle and velocity.
- Adjust angle and velocity in-game with D-Pad/trackball or touchscreen.
- Fire with touchscreen pressure.
- Fading projectile trail.
- Machine gun. (toggled by Auto-fire preference)
- New preferences:
- Explosive Target (Fireworks!)
- Keep Targets (In Random mode, hitting the most recent target adds an additional target)
- Speed Multiplier
- Touchscreen drag and pressure sensitivity
- Physical borders: Ground, Roof, Left Wall, Right Wall
- Completed Target Color (Useful for Random mode with Keep Targets enabled)
Release 1 (v1.0.0) [2010-06-27]
- Initial release to the Android Market!
Started development on 2010-06-16