Beispiel #1
0
void do_think(world_t *w){
	int i = 0;
	particle_t *p = NULL;
	while((p = world_next_thinking(w,&i))){
		if (p->action){
			p->action(p);
		}
		if (particle_has_prop(p)){
			particle_do_nprop(p,get_dtime_sec());
			particle_do_vprop(p,get_dtime_sec());
		}
		if (particle_has_timer(p)){
			particle_do_timer(p,get_time());
		}
		if (p->die_time && (get_time() > p->die_time)){
			particle_kill(p);
		}
		if (particle_is_camera(p)){
			camera_set_zone(p->box.pos,0.05,0.04);
		}
		if (particle_is_dead(p) && p->die){
			p->die(p);
		}
	}
}
Beispiel #2
0
void particle_simple_move(particle_t* self) {
  float dtime = get_dtime_sec();
  self->v = vec_add(self->v, vec_scale(self->a, dtime));
  self->box.pos = vec_add(self->box.pos, vec_scale(self->v, dtime));
}