1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
int brick::collide_haut_brique(ball balle)
{
// la balle touche le haut de la brique, il faut la faire remonter
//if(balle->direc==DOWN)
//{
if(float(balle.ballposx/400)+0.1f >= float(brickposX/400) )// on teste que la balle est sur la case en x;
{
if ( float(balle.ballposx/400) <= float(brickposX/400)+0.1f )
{
if( float(balle.ballposy/400) <= float(brickposY/400)+0.1f)// on teste que la balle est sur la case en y;
{
if(float(balle.ballposy/400) >= float(brickposY/400)-0.1f )
{
//balle->direc=UP;
return UP;
//balle->direc=-balle->direc;
}
}
}
}
//}
return 0;
}
int brick::collide_bas_brique(ball balle)
{
// la balle touche le bas de la brique il faut la faire redescendre
//if(balle->direc==UP)
//{
if(float(balle.ballposx/400)+0.1f >= float(brickposX/400) ) // on teste que la balle est sur la case en x;
{
if ( float(balle.ballposx/400) <= float(brickposX/400)+0.1f )
{
if( float(balle.ballposy/400) >= float(brickposY/400)-0.1f )// on teste que la balle est sur la case en y;
{
if(float(balle.ballposy/400) <= float(brickposY/400)+0.1f )
{
//balle->direc=DOWN;
return DOWN;
//balle->direc=-balle->direc;
}
}
}
}
//}
return 0;
}
int level::checkcollides(ball *balle)
{
for (int p=0; p<20 ; p++ )
{
if(bricks[p].isalive==true)
{
if(bricks[p].collide_haut_brique(*balle)==UP)
{
balle->direc=UP;
std::cout <<"UP ! balle.direc = " << balle->direc << "\n";
bricks[p].isalive=false;
}
//std::cout <<"HAUT BRICK " << bricks[p].collide_bas_brique(balle) << "\n";
if(bricks[p].collide_bas_brique(*balle)==DOWN)
{
balle->direc=DOWN;
std::cout <<"DOWN ! balle.direc = " << balle->direc << "\n";
bricks[p].isalive=false;
}
//std::cout <<"BAS BRICK " << bricks[p].collide_bas_brique(balle) << "\n";
}
}
return 0;
} |
Partager