ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libgender/test.C
(Generate patch)

Comparing libgender/test.C (file contents):
Revision 1.49 by root, Fri Oct 8 16:52:49 2004 UTC vs.
Revision 1.50 by root, Sat Oct 9 11:56:50 2004 UTC

32/**********************************************************************/ 32/**********************************************************************/
33 33
34view camera; 34view camera;
35vec3 camera_velocity; 35vec3 camera_velocity;
36float camera_angle = 0, camera_velocity_angle; 36float camera_angle = 0, camera_velocity_angle;
37float camera_velocity_factor = 20; 37float camera_velocity_factor = 80;
38 38
39void 39void
40HotKey_ToggleFullScreen (void) 40HotKey_ToggleFullScreen (void)
41{ 41{
42 SDL_Surface *screen; 42 SDL_Surface *screen;
103 break; 103 break;
104 104
105 case SDL_KEYDOWN: 105 case SDL_KEYDOWN:
106 if (event->key.keysym.sym == SDLK_UP) camera_velocity.z--; 106 if (event->key.keysym.sym == SDLK_UP) camera_velocity.z--;
107 if (event->key.keysym.sym == SDLK_DOWN) camera_velocity.z++; 107 if (event->key.keysym.sym == SDLK_DOWN) camera_velocity.z++;
108 if (event->key.keysym.sym == SDLK_LEFT) camera_velocity.x--;
109 if (event->key.keysym.sym == SDLK_RIGHT) camera_velocity.x++; 108 if (event->key.keysym.sym == SDLK_RIGHT) camera_velocity_angle++;
109 if (event->key.keysym.sym == SDLK_LEFT) camera_velocity_angle--;
110 if (event->key.keysym.sym == SDLK_a) camera_velocity.y--; 110 if (event->key.keysym.sym == SDLK_e) camera_velocity.y--;
111 if (event->key.keysym.sym == SDLK_s) camera_velocity.y++; 111 if (event->key.keysym.sym == SDLK_q) camera_velocity.y++;
112 if (event->key.keysym.sym == SDLK_v) camera_velocity_factor *= 1.5; 112 if (event->key.keysym.sym == SDLK_v) camera_velocity_factor *= 1.5;
113 if (event->key.keysym.sym == SDLK_b) camera_velocity_factor /= 1.5; 113 if (event->key.keysym.sym == SDLK_b) camera_velocity_factor /= 1.5;
114 if (event->key.keysym.sym == SDLK_e) camera_velocity_angle++;
115 if (event->key.keysym.sym == SDLK_q) camera_velocity_angle--;
116 114
117 if (event->key.keysym.sym == SDLK_ESCAPE) 115 if (event->key.keysym.sym == SDLK_ESCAPE)
118 done = 1; 116 done = 1;
119 117
120 if ((event->key.keysym.sym == SDLK_g) && 118 if ((event->key.keysym.sym == SDLK_g) &&
132 break; 130 break;
133 131
134 case SDL_KEYUP: 132 case SDL_KEYUP:
135 if (event->key.keysym.sym == SDLK_UP) camera_velocity.z++; 133 if (event->key.keysym.sym == SDLK_UP) camera_velocity.z++;
136 if (event->key.keysym.sym == SDLK_DOWN) camera_velocity.z--; 134 if (event->key.keysym.sym == SDLK_DOWN) camera_velocity.z--;
137 if (event->key.keysym.sym == SDLK_LEFT) camera_velocity.x++; 135 if (event->key.keysym.sym == SDLK_LEFT) camera_velocity_angle++;
138 if (event->key.keysym.sym == SDLK_RIGHT) camera_velocity.x--; 136 if (event->key.keysym.sym == SDLK_RIGHT) camera_velocity_angle--;
139 if (event->key.keysym.sym == SDLK_a) camera_velocity.y++; 137 if (event->key.keysym.sym == SDLK_e) camera_velocity.y++;
140 if (event->key.keysym.sym == SDLK_s) camera_velocity.y--; 138 if (event->key.keysym.sym == SDLK_q) camera_velocity.y--;
141 if (event->key.keysym.sym == SDLK_e) camera_velocity_angle--;
142 if (event->key.keysym.sym == SDLK_q) camera_velocity_angle++;
143 break; 139 break;
144 140
145 case SDL_QUIT: 141 case SDL_QUIT:
146 done = 1; 142 done = 1;
147 break; 143 break;
378 while (!done) 374 while (!done)
379 { 375 {
380 char *sdl_error; 376 char *sdl_error;
381 SDL_Event event; 377 SDL_Event event;
382 378
383 camera.p.x += camera_velocity_factor * camera_velocity.x * timer.diff; 379 camera.p = camera.p - camera.d * (camera_velocity_factor * timer.diff) * camera_velocity.z;
384 camera.p.y += camera_velocity_factor * camera_velocity.y * timer.diff; 380 camera.p = camera.p - camera.u * (camera_velocity_factor * timer.diff) * camera_velocity.y;
385 camera.p.z += camera_velocity_factor * camera_velocity.z * timer.diff;
386
387 camera_angle += camera_velocity_factor * camera_velocity_angle * timer.diff; 381 camera_angle += 30 * camera_velocity_angle * timer.diff;
388 camera.d.z = -cos (camera_angle * 12 / 180.); 382 camera.d.z = -cos (camera_angle * 12 / 180.);
389 camera.d.x = sin (camera_angle * 12 / 180.); 383 camera.d.x = sin (camera_angle * 12 / 180.);
390 384
391 cgGLSetParameter4f (lightpos, camera.p.x, camera.p.y, camera.p.z, 1); 385 cgGLSetParameter4f (lightpos, camera.p.x, camera.p.y, camera.p.z, 1);
392 386

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines