MovingSprite(Vector(0,0), "images/powerups/egg/egg.sprite", LAYER_OBJECTS, COLGROUP_MOVING),
physic(),
light(0.0f,0.0f,0.0f),
- shadesprite(sprite_manager->create("images/powerups/egg/egg.sprite")),
- lightsprite(sprite_manager->create("images/objects/lightmap_light/lightmap_light-small.sprite"))
+ shadesprite(SpriteManager::current()->create("images/powerups/egg/egg.sprite")),
+ lightsprite(SpriteManager::current()->create("images/objects/lightmap_light/lightmap_light-small.sprite"))
{
physic.enable_gravity(true);
physic.set_velocity_x((direction == LEFT)?-100:100);
- sound_manager->preload("sounds/grow.ogg");
+ SoundManager::current()->preload("sounds/grow.ogg");
//shadow to remain in place as egg rolls
shadesprite->set_action("shadow");
//set light for glow effect
}
void
-GrowUp::draw(DrawingContext& context){
- //Set Sprite rotation angle
- sprite->set_angle(get_pos().x * 360.0f / (32.0f * M_PI));
+GrowUp::draw(DrawingContext& context)
+{
+ if(physic.get_velocity_x() != 0) {
+ //Set Sprite rotation angle
+ sprite->set_angle(get_pos().x * 360.0f / (32.0f * M_PI));
+ }
//Draw the Sprite.
MovingSprite::draw(context);
//Draw shade
physic.set_velocity_y(0);
if(hit.bottom && physic.get_velocity_y() > 0)
physic.set_velocity_y(0);
- if(hit.left || hit.right)
+ if(hit.left || hit.right) {
physic.set_velocity_x(-physic.get_velocity_x());
+ }
}
HitResponse
{
Player* player = dynamic_cast<Player*>(&other);
if(player != 0) {
- if(!player->add_bonus(GROWUP_BONUS, true)){
+ if(!player->add_bonus(GROWUP_BONUS, true)) {
// Tux can't grow right now.
collision_solid( hit );
return ABORT_MOVE;
}
- sound_manager->play("sounds/grow.ogg");
+ SoundManager::current()->play("sounds/grow.ogg");
remove_me();
return ABORT_MOVE;