
Este es el codigo que controla la colision, donde miBarra es la barra de la izquierda, miBarra2 es la de la derecha, y los demas metodos son propios del objeto pelota
Como pueden ver en el codigo lo que estoy haciendo es verificar si la pelota se encuentra dentro del rango de alguna de las barras y si es asi verifico si choco contra alguna
Sirius es el nombre de una clase que cree a modo de game engine
- Código: Seleccionar todo
if((miBarra.getY()<=getY() && (miBarra.getY()+miBarra.getAlto())>=getY()+getAlto())//CHOCA CONTRA BARRA
|| (miBarra2.getY()<=getY())&&
((miBarra2.getY()+miBarra2.getAlto())>=getY()+getAlto()))
{
if(getX()-10<miBarra.getX()+miBarra.getAnc())
{
Sirius::reproducirSonido(1);
setVelX((-1)*getVelX());
}
else
{
if(getX()+getAnc()+getVelX()+10>miBarra2.getX())
{
Sirius::reproducirSonido(1);
setVelX((-1)*getVelX());
}
}
}