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 "video/drawing_context.hpp" 00018 #include "object/specialriser.hpp" 00019 #include "supertux/sector.hpp" 00020 00021 SpecialRiser::SpecialRiser(Vector pos, MovingObject* _child) : 00022 offset(), 00023 child(_child) 00024 { 00025 _child->set_pos(pos - Vector(0, 32)); 00026 offset = 0; 00027 } 00028 00029 SpecialRiser::~SpecialRiser() 00030 { 00031 } 00032 00033 void 00034 SpecialRiser::update(float elapsed_time) 00035 { 00036 offset += 50 * elapsed_time; 00037 if(offset > 32) { 00038 Sector::current()->add_object(child); 00039 remove_me(); 00040 } 00041 } 00042 00043 void 00044 SpecialRiser::draw(DrawingContext& context) 00045 { 00046 context.push_transform(); 00047 context.set_translation( 00048 context.get_translation() + Vector(0, -32 + offset)); 00049 child->draw(context); 00050 context.pop_transform(); 00051 } 00052 00053 /* EOF */