Exemplo n.º 1
0
Particles::Particles() {

	particles = VisualServer::get_singleton()->particles_create();
	timer = memnew(Timer);
	add_child(timer);
	emit_timeout = 0;

	set_amount(64);
	set_emitting(true);
	set_visibility_aabb(AABB( Vector3(-4,-4,-4), Vector3(8,8,8) ) );
	
	for (int i=0;i<VAR_MAX;i++) {
		set_randomness((Variable)i,0.0);
	}
	
	set_variable( VAR_LIFETIME, 5.0);
	set_variable( VAR_SPREAD, 0.2);
	set_variable( VAR_GRAVITY, 9.8);
	set_variable( VAR_LINEAR_VELOCITY, 0.2);
	set_variable( VAR_ANGULAR_VELOCITY, 0.0);
	set_variable( VAR_LINEAR_ACCELERATION, 0.0);
	set_variable( VAR_DRAG, 0.0);
	set_variable( VAR_TANGENTIAL_ACCELERATION, 0.0);
	set_variable( VAR_DAMPING, 0.0);
	set_variable( VAR_INITIAL_SIZE, 1.0);
	set_variable( VAR_FINAL_SIZE, 1.0);
	set_variable( VAR_INITIAL_ANGLE, 0.0);			
	set_variable( VAR_HEIGHT, 1.0);
	set_variable( VAR_HEIGHT_SPEED_SCALE, 0.0);

	color_phase_count=0;

	set_color_phase_pos(0,0.0);
	set_color_phase_pos(1,1.0);
	set_color_phase_pos(2,1.0);
	set_color_phase_pos(3,1.0);

	set_color_phase_color(0,Color(1,1,1));
	set_color_phase_color(1,Color(0,0,0));
	set_color_phase_color(2,Color(0,0,0));
	set_color_phase_color(3,Color(0,0,0));

	set_gravity_normal(Vector3(0,-1.0,0));
	set_emission_half_extents(Vector3(0.1,0.1,0.1));

	height_from_velocity=false;

	Vector<Variant> pars;
	pars.push_back(false);
	timer->connect("timeout", this, "set_emitting", pars);
	set_base(particles);
	local_coordinates=false;
}
Exemplo n.º 2
0
Particles2D::Particles2D() {

	for(int i=0;i<PARAM_MAX;i++) {

		param[i]=0;
		randomness[i]=0;
	}


	set_param(PARAM_SPREAD,10);
	set_param(PARAM_LINEAR_VELOCITY,20);
	set_param(PARAM_GRAVITY_STRENGTH,9.8);
	set_param(PARAM_RADIAL_ACCEL,0);
	set_param(PARAM_TANGENTIAL_ACCEL,0);
	set_param(PARAM_INITIAL_ANGLE,0.0);
	set_param(PARAM_INITIAL_SIZE,1.0);
	set_param(PARAM_FINAL_SIZE,1.0);
	set_param(PARAM_ANIM_SPEED_SCALE,1.0);


	time=0;
	lifetime=2;
	emitting=false;
	particles.resize(32);
	active_count=-1;
	set_emitting(true);
	local_space=true;
	preprocess=0;
	time_scale=1.0;

	color_phase_count=1;

	set_color_phase_pos(0,0.0);
	set_color_phase_pos(1,1.0);
	set_color_phase_pos(2,1.0);
	set_color_phase_pos(3,1.0);

	set_color_phase_color(0,Color(1,1,1));
	set_color_phase_color(1,Color(0,0,0));
	set_color_phase_color(2,Color(0,0,0));
	set_color_phase_color(3,Color(0,0,0));

	flip_h=false;
	flip_v=false;

	v_frames=1;
	h_frames=1;

	emit_timeout = 0;
	time_to_live = 0;
	explosiveness=1.0;
}