5a027a0f28eb03c2dcdc7c7a220221ecc7c3cd40
[supertux.git] / src / object / oneup.cpp
1 #include <config.h>
2
3 #include "oneup.h"
4 #include "resources.h"
5 #include "player.h"
6 #include "scene.h"
7 #include "special/sprite_manager.h"
8 #include "video/drawing_context.h"
9
10 OneUp::OneUp(const Vector& pos)
11 {
12   bbox.set_pos(pos);
13   bbox.set_size(32, 32);
14   sprite = sprite_manager->create("1up");
15   physic.set_velocity(100, 400);
16 }
17
18 OneUp::~OneUp()
19 {
20   delete sprite;
21 }
22
23 void
24 OneUp::action(float elapsed_time)
25 {
26   movement = physic.get_movement(elapsed_time); 
27 }
28
29 void
30 OneUp::draw(DrawingContext& context)
31 {
32   sprite->draw(context, get_pos(), LAYER_OBJECTS);
33 }
34
35 HitResponse
36 OneUp::collision(GameObject& other, const CollisionHit& hit)
37 {
38   Player* player = dynamic_cast<Player*> (&other);
39   if(player) {
40     player->get_status().incLives();
41     remove_me();
42     return ABORT_MOVE;
43   }
44   return FORCE_MOVE;
45 }
46