Example #1
0
void Xiq::Prepare()
{
	collides = true;
	angle = RandomUnit();
	steer = RandomUnitVector();

	SetRadius(30);
	speed = 100;
	max_speed = 100;

	force = RandomUnitVector()*1000;

	radius_waves[0].amplitude = 60;
	radius_waves[0].frequency = 1.3f;
	radius_waves[0].offset = 20;
	radius_waves[1].amplitude = 30;
	radius_waves[1].frequency = 0.7f;
	radius_waves[1].phase = math::pi/2.0f;

	colors[0].amplitude = 55;
	colors[0].offset = 200;
	colors[0].frequency = 0.5f;

	colors[1].amplitude = 55;
	colors[1].offset = 200;
	colors[1].frequency = 1.0f;

	colors[2].amplitude = 55;
	colors[2].offset = 200;
	colors[2].frequency = 1.5f;

	hit_player = false;

	location = last_pos = GetRoot()->GetWorld()->GetMidPoint();
}
Example #2
0
quaternion RandomQuaternionRange(double dqmax) {

    quaternion q;
    double alpha,sina;
    vector rotaxis;

    alpha = dqmax*RandomNumber();

    rotaxis = RandomUnitVector();

    sina = sin(alpha/2.0);
    q.q0 = cos(alpha/2.0);
    q.q1 = sina*rotaxis.x;
    q.q2 = sina*rotaxis.y;
    q.q3 = sina*rotaxis.z;

    return q;
}
void ParticalEffect::updateFire(float dt, const int scount, int type) {
    count = scount;
    for (int x = 0; x < count; x ++) {
        if(!partsA[x].active)
        {
            int mouseX, mouseY;
            Core::Input::GetMousePos( mouseX, mouseY );
            Vector2D mouse((float)mouseX, (float)mouseY);
            partsA[x] = Partical();
            float randInt = randomInRange(1,10);
            Vector2D rand;
            if(type == 1) {
                rand = RandomUnitVector() * randInt;
            } else {

            }
            Vector2D newPath = mouse + rand;
            partsA[x].updateFire(dt, mouse, newPath);
        }
    }
}