X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fbadguy%2Fangrystone.cpp;h=34ea9c14f7a749fc131e8e5a299e1d9a8fbcf9a6;hb=13c84268f16872f9b442251c4175a3a1a7a7899a;hp=33152913061b1899352d9615adc695d8f00c10c8;hpb=714a30abd887def6331a193216387e66cbfbd1bb;p=supertux.git diff --git a/src/badguy/angrystone.cpp b/src/badguy/angrystone.cpp index 331529130..34ea9c14f 100644 --- a/src/badguy/angrystone.cpp +++ b/src/badguy/angrystone.cpp @@ -1,7 +1,7 @@ // $Id$ // // AngryStone - A spiked block that charges towards the player -// 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 @@ -29,8 +29,12 @@ static const float ATTACK_TIME = 1; static const float RECOVER_TIME = .5; AngryStone::AngryStone(const lisp::Lisp& reader) - : BadGuy(reader, "images/creatures/angrystone/angrystone.sprite"), state(IDLE) + : BadGuy(reader, "images/creatures/angrystone/angrystone.sprite"), state(IDLE) { + physic.set_velocity_x(0); + physic.set_velocity_y(0); + physic.enable_gravity(true); + sprite->set_action("idle"); } void @@ -45,15 +49,6 @@ AngryStone::write(lisp::Writer& writer) } void -AngryStone::activate() -{ - physic.vx = 0; - physic.vy = 0; - physic.gravity_enabled = true; - sprite->set_action("idle"); -} - -void AngryStone::collision_solid(const CollisionHit& hit) { // TODO @@ -63,9 +58,9 @@ AngryStone::collision_solid(const CollisionHit& hit) (hit.normal.x == -attackDirection.x) && (hit.normal.y == attackDirection.y)) { state = IDLE; sprite->set_action("idle"); - physic.vx = 0; - physic.vy = 0; - physic.gravity_enabled = true; + physic.set_velocity_x(0); + physic.set_velocity_y(0); + physic.enable_gravity(true); oldWallDirection.x = attackDirection.x; oldWallDirection.y = attackDirection.y; } @@ -143,9 +138,9 @@ AngryStone::active_update(float elapsed_time) { sprite->set_action("attacking"); timer.start(ATTACK_TIME); state = ATTACKING; - physic.gravity_enabled = false; - physic.vx = SPEED * attackDirection.x; - physic.vy = SPEED * attackDirection.y; + physic.enable_gravity(false); + physic.set_velocity_x(SPEED * attackDirection.x); + physic.set_velocity_y(SPEED * attackDirection.y); oldWallDirection.x = 0; oldWallDirection.y = 0; } @@ -156,9 +151,9 @@ AngryStone::active_update(float elapsed_time) { timer.start(RECOVER_TIME); state = RECOVERING; sprite->set_action("idle"); - physic.gravity_enabled = true; - physic.vx = 0; - physic.vy = 0; + physic.enable_gravity(true); + physic.set_velocity_x(0); + physic.set_velocity_y(0); } } @@ -166,9 +161,9 @@ AngryStone::active_update(float elapsed_time) { if (timer.check()) { state = IDLE; sprite->set_action("idle"); - physic.gravity_enabled = true; - physic.vx = 0; - physic.vy = 0; + physic.enable_gravity(true); + physic.set_velocity_x(0); + physic.set_velocity_y(0); } }