DESTRUCTIBLE WALL

by Steven Udall


Project Description:


The goal of this project was to create a destructible wall that was fast and looked somewhat realistic via approximation. I did this by creating a physics object that all models declare and keeps track of all physics related information such as position, velocity, and acceleration of the object. It's updated as often as possible and is kept the same speed on all computers by using the linux system function gettimeofday(2) to get the amount of time that has passed since it was last updated in microseconds. Collision detection is done using spherical collision models. When a collision is detected, all of the bricks that are found to have collided are added to a list that is run through later to distribute momentum from the ball. I randomly assigned one of three textures to each brick, giving the wall a more plausible look. I implemented a skybox with a light source at the same position as the sun to create an interesting and beautiful scenery to look at that appears to emit light. Lastly, I implemented first-person-shooter-like qualities such as a crosshair and passive camera movement by warping the pointer back to the center of the window after every movement.


Controls:

ESC – lock the camera to the mouse (first-person-shooter mode)

left-click – hold to move camera around

w – move forward

a – strafe left

s – move backward

d – strafe right


During FPS mode:

left mouse click - fire ball


Results Images:
























References:

http://sidvind.com/wiki/Skybox_tutorial – Nice skybox tutorial

http://pyopengl.sourceforge.net/documentation/manual/glutWarpPointer.3GLUT.html – Warp pointer

http://www.opengroup.org/onlinepubs/009695399/functions/gettimeofday.html – Get time of day