X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fbadguy%2Fskullyhop.cpp;h=6de656eda81781c2f5907af32d881ef3e2822b96;hb=13c84268f16872f9b442251c4175a3a1a7a7899a;hp=79d9f2122107cd18155f67d8bf15ab3cfce40771;hpb=714a30abd887def6331a193216387e66cbfbd1bb;p=supertux.git diff --git a/src/badguy/skullyhop.cpp b/src/badguy/skullyhop.cpp index 79d9f2122..6de656eda 100644 --- a/src/badguy/skullyhop.cpp +++ b/src/badguy/skullyhop.cpp @@ -1,7 +1,7 @@ // $Id$ // // SkullyHop - A Hopping Skull -// Copyright (C) 2006 Christoph Sommer +// Copyright (C) 2006 Christoph Sommer // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License @@ -25,19 +25,19 @@ namespace { const float VERTICAL_SPEED = -450; /**< y-speed when jumping */ const float HORIZONTAL_SPEED = 220; /**< x-speed when jumping */ - const float MIN_RECOVER_TIME = 0.1; /**< minimum time to stand still before starting a (new) jump */ - const float MAX_RECOVER_TIME = 1.0; /**< maximum time to stand still before starting a (new) jump */ + const float MIN_RECOVER_TIME = 0.1f; /**< minimum time to stand still before starting a (new) jump */ + const float MAX_RECOVER_TIME = 1.0f; /**< maximum time to stand still before starting a (new) jump */ static const std::string HOP_SOUND = "sounds/hop.ogg"; } SkullyHop::SkullyHop(const lisp::Lisp& reader) - : BadGuy(reader, "images/creatures/skullyhop/skullyhop.sprite") + : BadGuy(reader, "images/creatures/skullyhop/skullyhop.sprite") { sound_manager->preload( HOP_SOUND ); } SkullyHop::SkullyHop(const Vector& pos, Direction d) - : BadGuy(pos, d, "images/creatures/skullyhop/skullyhop.sprite") + : BadGuy(pos, d, "images/creatures/skullyhop/skullyhop.sprite") { sound_manager->preload( HOP_SOUND ); } @@ -52,7 +52,7 @@ SkullyHop::write(lisp::Writer& writer) } void -SkullyHop::activate() +SkullyHop::initialize() { // initial state is JUMPING, because we might start airborne state = JUMPING; @@ -63,8 +63,8 @@ void SkullyHop::set_state(SkullyHopState newState) { if (newState == STANDING) { - physic.vx = 0; - physic.vy = 0; + physic.set_velocity_x(0); + physic.set_velocity_y(0); sprite->set_action(dir == LEFT ? "standing-left" : "standing-right"); float recover_time = systemRandom.randf(MIN_RECOVER_TIME,MAX_RECOVER_TIME); @@ -75,8 +75,8 @@ SkullyHop::set_state(SkullyHopState newState) } else if (newState == JUMPING) { sprite->set_action(dir == LEFT ? "jumping-left" : "jumping-right"); - physic.vx = (dir == LEFT ? -HORIZONTAL_SPEED : HORIZONTAL_SPEED); - physic.vy = VERTICAL_SPEED; + physic.set_velocity_x(dir == LEFT ? -HORIZONTAL_SPEED : HORIZONTAL_SPEED); + physic.set_velocity_y(VERTICAL_SPEED); sound_manager->play( HOP_SOUND, get_pos()); } @@ -104,19 +104,19 @@ SkullyHop::collision_solid(const CollisionHit& hit) return; // check if we hit the floor while falling - if(hit.bottom && physic.vy > 0 ) { + if(hit.bottom && physic.get_velocity_y() > 0 ) { set_state(STANDING); } // check if we hit the roof while climbing if(hit.top) { - physic.vy = 0; + physic.set_velocity_y(0); } // check if we hit left or right while moving in either direction if(hit.left || hit.right) { dir = dir == LEFT ? RIGHT : LEFT; sprite->set_action(dir == LEFT ? "jumping-left" : "jumping-right"); - physic.vx = -0.25*physic.vx; + physic.set_velocity_x(-0.25*physic.get_velocity_x()); } }