示例#1
0
int prox_ball_y(int pos){
	if(maxY==0){
		return ultimaPosY;
	}else	
	if(ultimaPosY>=maxY-radioBola && (direccion==ARR_DER||direccion==ARR_IZQ)){
		if(direccion==ARR_DER)
			direccion=ABA_DER;
		else
			direccion=ABA_IZQ;
	}else	
	if(ultimaPosY<=minY+radioBola && (direccion==ABA_IZQ||direccion==ABA_DER)){
        ultimaPosY=maxY;
        direccion=ARR_IZQ;
        return ultimaPosY;
    }else
    if(choque(pos)==1){
		if(direccion==ABA_DER)
			direccion=ARR_DER;
		else
            direccion=ARR_IZQ;
    }
	if(direccion==ARR_IZQ||direccion==ARR_DER){
		ultimaPosY+=10;
	}
	if(direccion==ABA_IZQ||direccion==ABA_DER){
		ultimaPosY-=10;
	}
	return ultimaPosY;
}
示例#2
0
//Metodo principal
void Juego::jugar()
{	
	//Cargo las variables de la partida a 0
	reset();
	
	//Loop principal
	while (true)
	{
		if (GetAsyncKeyState(VK_ESCAPE))
			break;
		
		//Actualizo el auto del jugador
		jugador.mover();
		jugador.dibujar();
		
		//Chequeo colision
		colision = checkColision(jugador.getX(), jugador.getY(),
			enemigos[ultimoEnemigo]->getX(), enemigos[ultimoEnemigo]->getY());
		if (colision)
		{
			//Si hay, disparo el metodo choque
			choque();
			//Si no perdio el jugador, continuo la partida
			if (vidas > 0)
				continue;
		}
		
		//Si se cumplio el timer del enemigo (dado por su velocidad), lo actualizo
		if (tempo+paso < clock())
		{
			//Aumento puntaje
			puntos+=10;
			mostrarPuntos();
			
			//Actualizo y luego evaluo si aumento la dificultad
			actualizarEnemigos();
			evaluaNivel();

			//Reinicio el timer
			tempo = clock();
		}
	}
}