Initial commit, graphics, triangle for player, square for enemies and
bullets
Second commit. Got some classes. It displays a screen, but it doesn't
really do much.
Third commit. As of this point, we have a display with one enemy that
flies rightwards and the player. The enemy shoots 10 bullets. The player
may shoot bullets and may kill the enemy. The player may also be killed,
but the game can't end. Collision detection seems to work fine.
Added menu with start, exit working, bullets now have firing rates, and
for enemies, limited in streams; draw_function() and loop_function() are
dynamically bound for the element to be displayed
Fixed circular motion stuff? Maybe?
Bombs implemented, circular motion fixed for real
Player now invulnerable while bombing. Bombs have an area of effect that gradually increases over the duration.
Added a power field to the player. More bullets as power increases. Power increases every frame at the moment, but will later come from enemy death.
Different bullet speeds for different power, reduced player shot cooldown, increased enemy hitbox
Separated bomb and invulnerability functionality. Dying now gives you a 100 tick invulnerabilty window, as does bombing. The bomb consumes bullets in its area of effect but you can still die outside of it. Added a StageOneBoss. It is terrifying. The player has three lives and three bombs.
Balancing changes. Reverted the player sprite to a hitbox-accurate diamond
Proof of concept: added support for importing stages from csv file.
Stages include data about timing, location, and attributes for
constructing Enemy() with arguments Sample format is included in
stage1.csv. (Praise python's arbitrary argument list support using * )
Fixed timing issue, and made player gray if invulnerable
Added __slots__ to classes to reduce memory; made speed of bullet,
enemy, player relative to time so movement does not depend on loop()
framerate; updated speed values; replaced array.remove() with list
comprehensions; game less laggy; CSVs now ignore all lines starting
with '#'; Also added fps counter;
ADDED HOMING BULLET FUNCTIONALITY AND IT WORKS PRETTY WELL ACTUALLY
Fleshed out the actual stage a lot. Fixed the homing bullet code ("fixed"). Player now gains power after killing enemies (probably too much).
Revised csv import code to accomodate for more arguments, now draws
circle showing bomb radius, increased loop rate, game now goes back to
menu and displays "Game Over" when user loses, stages work over many
games
Rewrote some of the boss's code (he shoots homers now!) and also the power code. Also tweaked the stage a little bit.
Added instantiating multiple types of enemies (by class name) into csv
parsing methods, updated stage1.csv to reflect the change
Probably some minor tweaking, nothing important, I'll bet. (I actually forgot, since I neglected committing this)