Homework #2: OpenGL Fireworks Tank
-
Due: 1 Dec 11:59pm
(Please DO NOT send any EXE file!
It will be bounced by the spam filter!)
-
Keyboard control
- Up/down arrow: changes the "elevation angle" of the cannon.
- Left/right arrow: changes the "traversal angle" of the cannon.
- w/s: moves the tank forward/backword.
- a/d: changes the orientation of the tank.
- Page up/down: changes the elevation angle of the camera.
- Home/end: rotates the camera.
- -/+(=): zooms out/in.
- Spacebar: shoots a fire.
- p: pauses the animation.
- Ctrl+Page Up/Down: changes the rendering level of the tank.
(May help to understand rendering process.)
-
Requirements
- Implement UI for tank control.
- To change the elevation angle of the cannon.
- To change the traversal angle of the cannon.
- To move forward/backward.
- To change the orientation.
-
Simulate the trajectory of the cannon ball.
- The motion should follow that of a trajectory.
- It's ok to have only one cannon ball at a time.
(Simulating multiple balls simutaneously may be tricker.)
- Each ball should act as a point light source.
- The ball should disappear when hit the ground.
- Put several objects (teapot, cone, sphere, etc.) on the ground so that
the light effect can be seen.
-
Executables
Samples