- if(state == GAMEPLAY) {
- // Update speeds.
- cur_speed = shipdx;
- if(shipdx < 0) cur_speed = 0;
- if(shipdx > 20) cur_speed = 20;
- game_dist += cur_speed*ticks_since_last;
- game_ticks += ticks_since_last;
- if(game_ticks < 2*1000) avg_speed = cur_speed;
- else avg_speed = game_dist/game_ticks;
- //printf("avg=%.2f, cur=%.2f. shipdx=%.2f\n", avg_speed, cur_speed, shipdx);
- avg_speed_w = 2 + 64*avg_speed/20;
- cur_speed_w = 2 + 64*cur_speed/20;
- }
+void
+draw_game_over(void)
+{
+ float a_game = 0, a_over = 0;
+ SDL_Rect dest;
+
+ // fade in "GAME", then "OVER".
+ a_game = min(1.0, faderate*fadetimer/3.0);
+ if(a_game == 1.0) a_over = min(1.0, faderate*fadetimer/3.0 - 1);
+
+ fadetimer += t_frame;
+
+ dest.x = (XSIZE-surf_b_game->w)/2;
+ dest.y = (YSIZE-surf_b_game->h)/2-40;
+ SDL_SetAlpha(surf_b_game, SDL_SRCALPHA, (int)(a_game*(200 + 55*cos(fadetimer))));
+ SDL_BlitSurface(surf_b_game,NULL,surf_screen,&dest);
+
+ dest.x = (XSIZE-surf_b_over->w)/2;
+ dest.y = (YSIZE-surf_b_over->h)/2 + 40;
+ SDL_SetAlpha(surf_b_over, SDL_SRCALPHA, (int)(a_over*(200 + 55*sin(fadetimer))));
+ SDL_BlitSurface(surf_b_over,NULL,surf_screen,&dest);
+}