vegego
21/04/2006, 13h33
Bonjour à tous et toutes
J'ai un souci que je traine depuis un moment, j'essaye de faire un arkanoid sur DS,
A part les briques que je n'ai pas encore faite j'ai les murs, la raquette et la balle.
Toutes les collisions fonctionne bien, mais dans un souci de réalisme je cherche à ce que la balle utilise n'importe quel angle, car pour le moment tout les rebonds se font avec un angle de 45°
J'ai essaye la fonction PA_GetAngle () et aussi PA_Cos mais sa ne marche vraiment pas ou je mi suis tres mal pris.
Donc j'en appelle a votre aide merci d'avance
Voila la portion de code qui gere la balle :
// Direction de la balle suivant l'axe y
// Les deux derniers test : la balle ne traverse plus la raquette lorsqu'elle tombe
if (y1 <= 0)
z = 1;
else if (y1 == 365 && ((x1 + TBALLE) >= x && x1 <= (x + TVAISSEAU)))
{
score += 1;
z = -1;
}
else if (y1 > 365 && (x1 + TBALLE) == x)
{
z = 1;
w = -1;
}
else if (y1 > 365 && x1 == (x + TVAISSEAU))
{
z = 1;
w = 1;
}
if (oldw != w || oldz != z)
{
oldw = w;
oldz = z;
oldx = x1;
oldy = y1;
}
x1 += w * vitesse;
y1 += z * vitesse;
J'ai un souci que je traine depuis un moment, j'essaye de faire un arkanoid sur DS,
A part les briques que je n'ai pas encore faite j'ai les murs, la raquette et la balle.
Toutes les collisions fonctionne bien, mais dans un souci de réalisme je cherche à ce que la balle utilise n'importe quel angle, car pour le moment tout les rebonds se font avec un angle de 45°
J'ai essaye la fonction PA_GetAngle () et aussi PA_Cos mais sa ne marche vraiment pas ou je mi suis tres mal pris.
Donc j'en appelle a votre aide merci d'avance
Voila la portion de code qui gere la balle :
// Direction de la balle suivant l'axe y
// Les deux derniers test : la balle ne traverse plus la raquette lorsqu'elle tombe
if (y1 <= 0)
z = 1;
else if (y1 == 365 && ((x1 + TBALLE) >= x && x1 <= (x + TVAISSEAU)))
{
score += 1;
z = -1;
}
else if (y1 > 365 && (x1 + TBALLE) == x)
{
z = 1;
w = -1;
}
else if (y1 > 365 && x1 == (x + TVAISSEAU))
{
z = 1;
w = 1;
}
if (oldw != w || oldz != z)
{
oldw = w;
oldz = z;
oldx = x1;
oldy = y1;
}
x1 += w * vitesse;
y1 += z * vitesse;