Ejemplo n.º 1
0
BodyMemberParticle::BodyMemberParticle(Sprite& spr, const Point2i& position)
  : Particle("body_member_particle")
  , angle_rad(0)
{
  SetCollisionModel(true, false, false);
  m_time_left_to_live = 100;
  // Bug #17408: make sure there's an available surface for the sprite
  spr.RefreshSurface();
  image = new Sprite(spr.GetSurface());
  image->EnableCaches(false, 0); // Some generic particle code requires it to be flipped
  ASSERT(image->GetWidth() && image->GetHeight());
  SetXY(position);

  SetSize(image->GetSize());
  SetOnTop(true);
  MSG_DEBUG("random.get", "BodyMemberParticle::BodyMemberParticle(...) speed vector length");
  Double speed_vector_length = (Double)RandomSync().GetInt(10, 15);
  MSG_DEBUG("random.get", "BodyMemberParticle::BodyMemberParticle(...) speed vector angle");
  Double speed_vector_angle = - RandomSync().GetDouble(0, 3);
  SetSpeed(speed_vector_length, speed_vector_angle);
}