Example #1
0
void Paleta::hit (Actor* who, int damage)
{
  switch (who->getCodigo ())
  {
    // Si tropezamos con un ladrillo. Aumentamos el tamaño.
    case Nombres::ladrillo:
        if (piel->getSize () < 8)
        {
          piel->setSize (piel->getSize () + 1);
          this->set_wh (32*piel->getSize () + 20,15);
        }
        break;

    // Si tropezamos con una pelota. Disminuímos el tamaño.
    case Nombres::pelota:
        if (piel->getSize () > 2)
        {
          piel->setSize(piel->getSize () - 1);
          set_wh (32*piel->getSize () + 20, 15);
        }
        break;

    default:
        break;
  }
};
Example #2
0
int Spriteset::load(const char* file, SPRITE_MODE const& mode_, GLenum const& param){

  mode = mode_;
  set_wh();
  load(file, param);

}
Example #3
0
Loro::Loro (Almacen &almacen):
ControllableActor (),
kboard (new Keyboard())
{
    // ¡Cuidado! Esto falla si en el almacén no existe el bitmap que se pide.
    // Animación de la derecha.
    izquierda = new Sprite(this);
    izquierda->add_frame(almacen.get_bitmap("sprite_042"), 0, 13, 10);
    izquierda->add_frame(almacen.get_bitmap("sprite_043"), 0,  0, 10);
    izquierda->add_frame(almacen.get_bitmap("sprite_044"), 0,  3, 10);
    izquierda->setMirror(true);

    // Animación de la izquierda.
    derecha = new Sprite(this);
    derecha->add_frame(almacen.get_bitmap("sprite_042"), 0, 13, 10);
    derecha->add_frame(almacen.get_bitmap("sprite_043"), 0,  0, 10);
    derecha->add_frame(almacen.get_bitmap("sprite_044"), 0,  3, 10);
    derecha->setMirror(false);

    // Animación de giro.
    giro_der = new Sprite(this);
    giro_der->add_frame(almacen.get_bitmap("pre2_338"), 10, 0, 5);
    giro_der->setMirror (true);

    giro_izq = new Sprite(this);
    giro_izq->add_frame(almacen.get_bitmap("pre2_338"), 10, 0, 5);
    giro_izq->setMirror (false);

    setCodigo (Nombres::herny);
    set_x(SCREEN_W/2);
    set_y(SCREEN_H/2);
    set_is_detected (true);
    set_collision_method(CollisionManager::PP_COLLISION);
    set_wh (36,26);

    // Animación de inicio.
    estado = FLOTANDO_DER;
    set_actor_graphic (derecha);

    // Se crea el control necesario para las acciones del loro.
    control = new Control ();
    control->add_action_name (LEFT,  "Izquierda");
    control->add_action_name (RIGHT, "Derecha");
    control->add_action_name (UP,    "Arriba");
    control->add_action_name (DOWN,  "Abajo");
    control->add_action_name (JUMP,  "Saltar");
    control->set_owner(this);

    // Se va a usar el teclado como único periférico para el loro.
    control->set_actionperipheral (UP,    kboard,  KEY_UP,    Peripheral::ON_PRESSING);
    control->set_actionperipheral (DOWN,  kboard,  KEY_DOWN,  Peripheral::ON_PRESSING);
    control->set_actionperipheral (LEFT,  kboard,  KEY_LEFT,  Peripheral::ON_PRESSING);
    control->set_actionperipheral (RIGHT, kboard,  KEY_RIGHT, Peripheral::ON_PRESSING);
    control->set_actionperipheral (JUMP,  kboard,  KEY_A,     Peripheral::ON_PRESS);
};
Example #4
0
/**
 * \brief    Constructor por omisión.
 */
Ben::Ben (Almacen& almacen):
estado(andando),
estado_sig(andando),
timer(0),
gravedad (10),
sentido(1)
{
  // Guardamos el sprite para cada estado.
  // ¡Cuidado! Esto falla si en el almacén no existe el bitmap que se pide.
  sprites[andando_der] = new Sprite(this);
  sprites[andando_der]->add_frame(almacen.get_bitmap("ben10_002"), 0, 0, 10);
  sprites[andando_der]->add_frame(almacen.get_bitmap("ben10_003"), 0, 0, 20);
  sprites[andando_der]->add_frame(almacen.get_bitmap("ben10_004"), 0, 0, 20);
  sprites[andando_der]->add_frame(almacen.get_bitmap("ben10_005"), 0, 0, 10);
  sprites[andando_der]->init ();

  sprites[andando_izq] = new Sprite(this);
  sprites[andando_izq]->add_frame(almacen.get_bitmap("ben10_006"), 0, 0, 10);
  sprites[andando_izq]->add_frame(almacen.get_bitmap("ben10_007"), 0, 0, 10);
  sprites[andando_izq]->add_frame(almacen.get_bitmap("ben10_008"), 0, 0, 10);
  sprites[andando_izq]->add_frame(almacen.get_bitmap("ben10_009"), 0, 0, 10);
  sprites[andando_izq]->init ();

  sprites[esperando_der] = new Sprite(this);
  sprites[esperando_der]->add_frame(almacen.get_bitmap("ben10_000"), 0, 0, 10);
  sprites[esperando_der]->init ();

  sprites[esperando_izq] = new Sprite(this);
  sprites[esperando_izq]->add_frame(almacen.get_bitmap("ben10_001"), 0, 0, 10);
  sprites[esperando_izq]->init ();

  sprites[cayendo_der] = new Sprite(this);
  sprites[cayendo_der]->add_frame(almacen.get_bitmap("ben10_021"), 0, 0, 10);
  sprites[cayendo_der]->init ();

  sprites[cayendo_izq] = new Sprite(this);
  sprites[cayendo_izq]->add_frame(almacen.get_bitmap("ben10_020"), 0, 0, 10);
  sprites[cayendo_izq]->init ();

  sprites[disparando_der] = new Sprite(this);
  sprites[disparando_der]->add_frame(almacen.get_bitmap("ben10_005"),  0, -2, 1);
  sprites[disparando_der]->add_frame(almacen.get_bitmap("ben10_010"),  0, -5, 2);
  sprites[disparando_der]->add_frame(almacen.get_bitmap("ben10_011"),  0, -8, 2);
  sprites[disparando_der]->add_frame(almacen.get_bitmap("ben10_012"),  0, -8, 3);
  sprites[disparando_der]->add_frame(almacen.get_bitmap("ben10_010"),  0, -5, 1);
  sprites[disparando_der]->init ();

  sprites[disparando_izq] = new Sprite(this);
  sprites[disparando_izq]->add_frame(almacen.get_bitmap("ben10_009"),  1, -2, 1);
  sprites[disparando_izq]->add_frame(almacen.get_bitmap("ben10_013"),  1, -5, 2);
  sprites[disparando_izq]->add_frame(almacen.get_bitmap("ben10_014"), 35, -8, 2);
  sprites[disparando_izq]->add_frame(almacen.get_bitmap("ben10_015"), 29, -8, 3);
  sprites[disparando_izq]->add_frame(almacen.get_bitmap("ben10_013"),  1, -5, 1);
  sprites[disparando_izq]->init ();

  sprites[saltando_der] = new Sprite(this);
  sprites[saltando_der]->add_frame(almacen.get_bitmap("ben10_016"),    0, 15, 10);
  sprites[saltando_der]->add_frame(almacen.get_bitmap("ben10_gm_000"), 0, 15,  5);
  sprites[saltando_der]->add_frame(almacen.get_bitmap("ben10_016"),    0, 15,  2);
  sprites[saltando_der]->add_frame(almacen.get_bitmap("ben10_gm_000"), 0, 15,  4);
  sprites[saltando_der]->add_frame(almacen.get_bitmap("ben10_016"),    0, 15,  3);
  sprites[saltando_der]->init ();

  sprites[saltando_izq] = new Sprite(this);
  sprites[saltando_izq]->add_frame(almacen.get_bitmap("ben10_017"), 0, 15, 10);
  sprites[saltando_izq]->init ();

  sprites[bajando_der] = new Sprite(this);
  sprites[bajando_der]->add_frame(almacen.get_bitmap("ben10_018"), 0, -25, 10);
  sprites[bajando_der]->init ();

  sprites[bajando_izq] = new Sprite(this);
  sprites[bajando_izq]->add_frame(almacen.get_bitmap("ben10_019"), 0, -25, 10);
  sprites[bajando_izq]->init ();

  sprites[girando_der] = new Sprite(this);
  sprites[girando_der]->add_frame(almacen.get_bitmap("ben10_001"), 0, 0, 10);
  sprites[girando_der]->add_frame(almacen.get_bitmap("ben10_000"), 0, 0, 10);
  sprites[girando_der]->init ();

  sprites[girando_izq] = new Sprite(this);
  sprites[girando_izq]->add_frame(almacen.get_bitmap("ben10_000"), 0, 0, 10);
  sprites[girando_izq]->add_frame(almacen.get_bitmap("ben10_001"), 0, 0, 10);
  sprites[girando_izq]->init ();

  Sprites_t sprite_act = estado2Sprite (estado);
  set_actor_graphic (sprites[sprite_act]);
  setCodigo (Nombres::ben);
  set_x(SCREEN_W/3);
  set_y(SCREEN_H/2);
  set_is_detected (false);
  set_collision_method(CollisionManager::PP_COLLISION);
  set_wh (21,60);
};
Example #5
0
Spriteset::Spriteset(const char* file, SPRITE_MODE const& mode_, GLenum const& param):mode(mode_){

  set_wh();
  load(file, param);

}