Beispiel #1
0
Powerup::Powerup(PowerupTipo _tipo, Mundo *mundo)
: GameObject(mundo)
{	
	CL_GraphicContext gc = mundo->get_gc();

	tipo = _tipo;

	switch(_tipo)
	{
		case MEDIKIT:
			sprite = new CL_Sprite(gc,"Medikit",mundo->recursos);
			collisionPowerup = new CL_CollisionOutline("data/Outlines/powerup.out");
			setAngulo(0);
			collisionPowerup->set_alignment(origin_center);
			break;

		case ESCUDO:
			sprite =new CL_Sprite(gc,"Escudo",mundo->recursos);
			collisionPowerup = new CL_CollisionOutline("data/Outlines/powerup.out");
			setAngulo(0);
			collisionPowerup->set_alignment(origin_center);
			break;

		case RAPIDEZ_TANQUE:
			sprite =new CL_Sprite(gc,"RapidezTanque",mundo->recursos);
			collisionPowerup = new CL_CollisionOutline("data/Outlines/powerup.out");
			setAngulo(0);
			collisionPowerup->set_alignment(origin_center);
			break;

		case DISPARO_360:
			sprite =new CL_Sprite(gc,"RapidezMisil",mundo->recursos);
			collisionPowerup = new CL_CollisionOutline("data/Outlines/powerup.out");
			setAngulo(0);
			collisionPowerup->set_alignment(origin_center);
			break;

	}
	
	explotando = false;
}
Beispiel #2
0
int main(int argc, char **argv) {

	pivo_type pivo;

	pivo.nrSetores = 4;
	pivo.anguloOperacao = 100;

	trataNrSetores(&pivo);

	mostraPivo(&pivo);

	setAngulo(&pivo, 1, 10);

	testaPivo(corrigeAngulos(&pivo), &pivo);

	setAngulo(&pivo, 2, 700);

	testaPivo(corrigeAngulos(&pivo), &pivo);

	return 0;

}
Beispiel #3
0
void Misil::mover(float dt)
{
	if(perseguidor)
	{
		int tiempdodesdedisparo= CL_System::get_time() - tiempodisparo;

		if(tiempdodesdedisparo >= 10)
		{	
			CL_Vec2f vector = Posicion - TargetTanque->getPos();
			
			float distancia = vector.length();
			mundo->AgregarCadenaChat(cl_format("%1",distancia));

			CL_Vec2f up(0.0f, 1.0f);
			float angulodest = up.angle(vector).to_degrees();

			/*if(TargetTanque->getPos().x < Posicion.x)
				angulodest = 360.0f - angulo;*/
			/*	else
				angulodest = 360.0f  angulo;*/

			angulodelta = angulodest - angulo;

			if(distancia < 150)
			{
				if(angulodelta > 0)
					angulodelta +=5;
			}
				
			if(angulodelta > 180.0f)	
			{
				angulodelta -= 360.0f;
				angulo += 360.0f;
			}
			if(angulodelta < -180.0f)
			{
				angulodelta += 360.0f;
				angulo -= 360.0f;
			}

			angulo +=angulodelta*dt/velocidad;

			setAngulo(angulo);
		}

	}

	Posicion.x += dt* float(sin(angulo* CL_PI / 180.0f));
	Posicion.y += dt* float(-cos(angulo * CL_PI / 180.0f));
	collisionMisil->set_translation(Posicion.x, Posicion.y);
}