Exemplo n.º 1
0
Arquivo: duck.c Projeto: harnold/ducks
void duck_set_state(struct duck *duck, int state, float time)
{
    duck->state = state;
    const struct sprite_class *class = &duck_classes[state];
    *((struct sprite_class *) duck->sprite) = *class;
    sprite_set_animation(duck->sprite, &duck_animations[state], time);
}
Exemplo n.º 2
0
static void collide(struct sprite *this_sprite,
		    struct sprite *other_sprite,
		    int x, int y)
{
  if (this_sprite->state == 0)
    {
      this_sprite->state = 1;
      sprite_set_animation(this_sprite, dissolve);
    }
}
Exemplo n.º 3
0
static void update(sprite_t *s)
{
	float v[2],x,pull[2];
	mech_sprite_t *ms = (mech_sprite_t *)s;

	sprite_get_vel(s,v);
	if (!(s->state & PLANE_CRASHING))
	{
		if (s->state & PLANE_ACCELERATING)
		{
			vset(pull,mech_heading(ms));
			vrot(pull,-16); /* maybe the angle should depend on up/down */
			vmadd(ms->lin_impulse,engine_strength,pull);
		}
		if (s->state & PLANE_UP)
			ms->air_rotate = -turn_amount;
		else if (s->state & PLANE_DOWN)
			ms->air_rotate = turn_amount;
		else
			ms->air_rotate = 0;

		if (ms->damage >= hitpoints)
		{
			s->state |= PLANE_CRASHING;
			if (!(s->owner->schrodinger)){
				sprite_set_animation(s,crashing[s->owner->id_in_team]);
			}else{
				sprite_set_animation(s,crashing[MAXPLAYERINTEAMS]);
			}

			s->owner->lastEnnemi->points+=crash_point;
			create_effect(&fire,s->x,s->y);
			sprite_alarm(7000,s,SIGNAL_KILL,0);
		}
	}
	mech_update(ms);
}
Exemplo n.º 4
0
Arquivo: duck.c Projeto: harnold/ducks
void init_duck(struct duck *duck, int state, double x, double y,
               double v_x, double v_y, int z, float time)
{
    duck->state = state;
    duck->world_x = x;
    duck->world_y = y;
    duck->world_v_x = v_x;
    duck->world_v_y = v_y;

    struct sprite *sprite = create_sprite(&duck_classes[state],
                                          world_to_screen_x(x),
                                          world_to_screen_y(y), z, 0);

    sprite_set_animation(sprite, &duck_animations[state], time);

    duck->sprite = sprite;
    elist_link(&duck->link, &duck->link);
}