Requirements
The following items account for 80% of the total challenge points:
- See examples (especially "animation-example")
- Add two or drawing object classes that can be added to drawing (e.g., "Add Ellipse/Oval")
- Add buttons to allow the new objects to be added to the drawing
- Each drawing object class should "implement" the "Drawing" interface (e.g., see Circle.java)
- Each added drawable should have random position, size (if applicable), color and line thickness
- Each drawing object should reflect/bounce off the drawing outer walls (frame)
- Add input field "speed" (like the fields in the previous "SmartNumber" MVC work) -- speed is the distance each animation objects travels during each animation step
- Add input field "interval" -- interval is time (in milliseconds) between each animation step
The following items account for 20% of the total challenge points:
- Have animation objects reflect/bounce off one another when they collide
- Hint: you should be able to get acceptable results for this reflection by giving special consideration to maximum speed and minimum objects size/frame
Rules
- Regarding MVC (model-view-controller) keep the view and controller code light -- the heavy code (the brains/engine) should be put in the model layer
- All of your objects (to be animated) must implement the Animatable interface
- The model must be a composite (have components) -- see diagrams