Enemy: #collideWith checks collision. Bounces off of walls and other enemies. Kills marios. gets killed by block bonk from below Specific enemy behaviors: koopas get replaced with shells shells get kicked if touched from the side, instead of killing Mario: #collideWith gets expelled from walls, bonks blocks, destroys blocks as big Mario note: collision with blocks is determined by which one is over the center if you're slightly to the side, you slip past it. Crazy-ass sprite shifting if you're in star mode! Item #collideWith item pickup logic Mushroom #update movement logic for mushrooms get impulse from being block bonked this can be implemented by giving them the appropriate accel just if they overlap a block from the bottom. of course, only AFTER they finish sliding out of the block. Water levels: make a separate class for water Marios less gravity swimming sprite fireballs are the same jump works when not on the ground different enemies TODO: Make level loader use hashes instead of arrays where possible. Should be a free performance gain. Should also make item deletion less weird. TODO: Make gravity exist higher up instead of having a magic number. Note from the future: Nope. Different objects have different gravity.