- speed (aka movement) and position values use a Vector class
- MoveKey holds key configuration
- EventManager holds logic for event management (aka key pressed...)
- Entity holds Rect, parallax and movement logic
- protagonist can move in 2d and change parallax for a 3d effect.
- Element display should be based on parallax. (near objects should draw on top of far objects)
- Allow camera to change position
- allow camera x axis movement
- allow camera y axis movement
- allow camera parallax change
- consider camera position change for element drawing
- deal with camera movement on the x axis
- deal with camera movement on the y axis
- deal with camera parallax change
- implement camera shake
- initial implementation -- working camera shake
- assess if current way of going about implementation makes sens
- cleanup implementation -- make the code resonably pretty
- have each Entity (Camera also) hold their own movement keys and movement logic
- Camera changes
- do not draw elements that have a parallax higher than the camera (they are "behind" the camera)
- allow camera to "switch" positional logic. Instead of following its own Rect, follow passed rect.