示例#1
0
 void Rectangulo::imprimeEsq()
 {
 cout << "Para la esquina superior izquierda.\n";
 cout << "x = " << superiorIzq.obtenerX() << " y = " << superiorIzq.obtenerY() << endl;
 cout << "Para la esquina inferior derecha.\n";
 cout << "x = " << inferiorDer.obtenerX() << " y = " << inferiorDer.obtenerY() << endl;
 }
示例#2
0
void GameProyecto:: update()
{
	int asteroidePeque;
	int asteroideGrande;
	for(int  i=0; i < asteroides.size(); i++) {
		Coordenada centro = asteroides[i].obtenCentro();
		if((centro.obtenerX()>650 || centro.obtenerX() <-50) || (centro.obtenerY()>850 || centro.obtenerY() <-50))
		{
			centro = Coordenada(((double)600+rand()%50),(double)800+ rand()%50);
			if(((int)(centro.obtenerX()))%2==0) centro = Coordenada(-centro.obtenerX()+600,centro.obtenerY());
			if(((int)(centro.obtenerY()))%2==0) centro = Coordenada(centro.obtenerX(),-centro.obtenerY()+800);
			asteroides[i].desplazamiento = Vector2D((float)rand(),(float)rand());
			if(((int)asteroides[i].desplazamiento.getX())%3==0)	asteroides[i].desplazamiento.setX(-asteroides[i].desplazamiento.getX());
			if(((int)asteroides[i].desplazamiento.getY())%3==0)	asteroides[i].desplazamiento.setY(-asteroides[i].desplazamiento.getY());
			asteroides[i].desplazamiento.normaliza();
		}
		asteroides[i].posicionaCentro(Coordenada(centro.obtenerX()+ 1000/asteroides[i].calcArea()*asteroides[i].desplazamiento.getX(), centro.obtenerY() + 1000/asteroides[i].calcArea()*asteroides[i].desplazamiento.getY()));
		asteroides[i].rota(1000/asteroides[i].calcArea());
		for(int j = 0 ; j<i ; j++)
		{
			centro = asteroides[j].obtenCentro();
			if((centro.obtenerX()>600 || centro.obtenerX() <0) || (centro.obtenerY()>800 || centro.obtenerY() <0))
				continue;	
			if(asteroides[i].choca(&asteroides[j]))
			{
				if(asteroides[j].calcArea()>asteroides[i].calcArea())
				{
					asteroidePeque = i;
					asteroideGrande = j;
				}	
				else 
				{
					asteroidePeque = j;
					asteroideGrande = i;
				}						
				asteroides[asteroideGrande].desplazamiento = Vector2D(asteroides[asteroideGrande].desplazamiento.getX() + asteroides[asteroidePeque].desplazamiento.getX()*2, asteroides[asteroideGrande].desplazamiento.getY()+ asteroides[asteroidePeque].desplazamiento.getY()*2);
				asteroides[asteroideGrande].desplazamiento.normaliza();
				centro = Coordenada(((double)600+rand()%50),(double)800+ rand()%50);
				if(((int)(centro.obtenerX()))%2==0) centro = Coordenada(-centro.obtenerX()+600,centro.obtenerY());
				if(((int)(centro.obtenerY()))%2==0) centro = Coordenada(centro.obtenerX(),-centro.obtenerY()+800);				
				asteroides[asteroidePeque].desplazamiento = Vector2D((float)rand(),(float)rand());
				if(((int)asteroides[asteroidePeque].desplazamiento.getX())%3==0)	asteroides[asteroidePeque].desplazamiento.setX(-asteroides[asteroidePeque].desplazamiento.getX());
				if(((int)asteroides[asteroidePeque].desplazamiento.getY())%3==0)	asteroides[asteroidePeque].desplazamiento.setY(-asteroides[asteroidePeque].desplazamiento.getY());
				asteroides[asteroidePeque].desplazamiento.normaliza();
				asteroides[asteroidePeque].posicionaCentro(Coordenada(centro.obtenerX()+ 1000/asteroides[asteroidePeque].calcArea()*asteroides[asteroidePeque].desplazamiento.getX(), centro.obtenerY() + 1000/asteroides[asteroidePeque].calcArea()*asteroides[asteroidePeque].desplazamiento.getY()));
			}
		}
	}
}