Salut!
J'ai un problème ... je doit faire rebondir une balle toujours à la même hauteur .. et ce, quelque soit ses coordonnées de départ. (pas besoin de calcul de frottement et d'accélération)
Ne maitrisant pas trop les fonctions mathématiques pour les calcul de courbes avec sinus et cosinus, j'ai fait ma propre méthode qui prend en compte une pseudo gravité... mais le rebond n'est pas constant
Extrait du code:
--------------------------------------------------------------------------------------
function TFrmMain.MvtBoule(Boule: TypeBoule):TypeBoule;
var
cpt: integer;
begin
Boule.x1 := Boule.x1 + Boule.sensHoriz;
Boule.x2 := Boule.x1 + Boule.taille;
Boule.y1 := Boule.y1 + Boule.sensVert;
Boule.y2 := Boule.y1 + Boule.taille;
if Boule.x2 > Ecran.Width then
begin
Boule.x2 := Ecran.Width;
Boule.x1 := Boule.x2 - Boule.taille;
Boule.sensHoriz := -Boule.sensHoriz;
end;
if Boule.x1 < 0 then
begin
Boule.x1 := 0;
Boule.x2 := Boule.x1 + Boule.taille;
Boule.sensHoriz := -Boule.sensHoriz;
end;
if Boule.y1 < 0 then
begin
Boule.y1 := 0;
Boule.y2 := Boule.y1 + Boule.taille;
Boule.sensVert := -Boule.sensVert;
end;
if Boule.y2 > Ecran.Height then
begin
Boule.y2 := Ecran.Height;
Boule.y1 := Boule.y2 - Boule.taille;
Boule.sensVert := -Boule.sensVert;
end;
Boule.sensVert := Boule.sensVert + Boule.gravite;
Result := Boule;
end;
------------------------------------------------------------------------------------
Je sais c'est pas top et ça marche mal! Mais c'est pour ça que j'ai besoin d'aide
Partager