00001 // SuperTux 00002 // Copyright (C) 2006 Matthias Braun <matze@braunis.de> 00003 // 00004 // This program is free software: you can redistribute it and/or modify 00005 // it under the terms of the GNU General Public License as published by 00006 // the Free Software Foundation, either version 3 of the License, or 00007 // (at your option) any later version. 00008 // 00009 // This program is distributed in the hope that it will be useful, 00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 // GNU General Public License for more details. 00013 // 00014 // You should have received a copy of the GNU General Public License 00015 // along with this program. If not, see <http://www.gnu.org/licenses/>. 00016 00017 #include "supertux/fadeout.hpp" 00018 #include "supertux/globals.hpp" 00019 #include "video/drawing_context.hpp" 00020 00021 FadeOut::FadeOut(float fade_time, Color color) 00022 : color(color), fade_time(fade_time), accum_time(0) 00023 { 00024 } 00025 00026 FadeOut::~FadeOut() 00027 { 00028 } 00029 00030 void 00031 FadeOut::update(float elapsed_time) 00032 { 00033 accum_time += elapsed_time; 00034 if(accum_time > fade_time) 00035 accum_time = fade_time; 00036 } 00037 00038 void 00039 FadeOut::draw(DrawingContext& context) 00040 { 00041 Color col = color; 00042 col.alpha = accum_time / fade_time; 00043 context.draw_filled_rect(Vector(0, 0), 00044 Vector(SCREEN_WIDTH, SCREEN_HEIGHT), 00045 col, LAYER_GUI+1); 00046 } 00047 00048 bool 00049 FadeOut::done() 00050 { 00051 return accum_time >= fade_time; 00052 } 00053 00054 /* EOF */