ptifranfran
Messages postés6Date d'inscriptiondimanche 12 novembre 2000StatutMembreDernière intervention 6 mars 2007
-
10 avril 2005 à 19:46
gengiskhan1985
Messages postés11Date d'inscriptionjeudi 22 avril 2004StatutMembreDernière intervention 1 mai 2007
-
14 avril 2005 à 09:14
Je suis en train de réaliser un petit jeu où un joueur doit lancer une
balle. Il doit entrer l'angle de tir et la vitess. J'aimerai que cette
balle ddécrive une parabole en fonction de l'angle et de la vitesse
donnée. J'ai penser un a timer mais je ne sais pas quoi ecrire dedans...
gengiskhan1985
Messages postés11Date d'inscriptionjeudi 22 avril 2004StatutMembreDernière intervention 1 mai 2007 14 avril 2005 à 09:14
Sh1.Left et
Sh1.Top sont des integer mais P.X et P.Y des reels.
Dans l'aide delphi : (c'est ce qu'il y a de plus simple pour
savoir ce que fait une fonction)
function Trunc(X:Extended):Int64;
Description
Dans le code Delphi,la fonction Trunc tronque une valeur de type réel en valeur de type entier.X est une expression de type réel.Trunc renvoie une valeur Int64 qui correspond àla valeur arrondie de X (vers zéro).
Le -34 dans 'Form1.Height-TRUNC(P.Y)-Sh1.Height-34' ainsi que le -3 dans 'Form1.Width-Sh1.Width-3' sont sans doute du aux bords (la marge bleue) du form. A vrai dire j'ai jamais vraiment sus de quoi ca vient.
Mais bref, sans ca il sort du form donc tu le met.
gengiskhan1985
Messages postés11Date d'inscriptionjeudi 22 avril 2004StatutMembreDernière intervention 1 mai 2007 10 avril 2005 à 21:40
T’as deux choix (au moins) soit tu définis deux vecteurs (en gras dans la suite) : V (vitesse) et P (position) et a chaque appel tu timer tu effectue V := V + g*dt puis P : = P + V*dt.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
‘dt’ est le temps écoulé g l’accélération de la pesanteur.
Type Vecteur =Record
X,Y :Real ;
End;
const g:Vecteur= (X:0;Y:-9,8);
initialisation de V : V.X :=V_init*Cos(angle) ; V.Y :=V_init*Sin(angle) ;
Soit t'utilise la version intégrée de la formule:
Pour g =(0,-g) :
P.X := V.X*t ;
P.Y := V.Y*t-g*t*t/2;
Soit de manière plus générale :
P : =P0
+V0
*t+g*(t^2)/2; {V0 et P0
valeurs initiales (cf initialisation) t le temp total depuis lancement.}
ptifranfran
Messages postés6Date d'inscriptiondimanche 12 novembre 2000StatutMembreDernière intervention 6 mars 2007 11 avril 2005 à 14:27
Merci d'avoir repondu si rapidement, j'ai essayer la méthode que tu m'a
donnée mais je dois mal m'y prendre et cela ne marche pas. Pourrais tu
détailler un peu plus ce qu'il faut écrire en delphi pour réaliser mon
projet. La balle que je dois lancé s'appelle sh1 (c'est un shape) est
ce que cela peut poser un problème ?
ptifranfran
Messages postés6Date d'inscriptiondimanche 12 novembre 2000StatutMembreDernière intervention 6 mars 2007 13 avril 2005 à 23:27
Après quelques petites modifications j'ai enfn reussi a lanncer la balle !!! Merci a gengiskhan1985 pour son aide precieuse.
J'ai une dernière questions pour toi qu'est ce que "TRUNC" a quoi ca sert ???
et qu'est ce que représente -34 dans : "Sh1.Top:=Form1.Height-TRUNC(P.Y)-Sh1.Height-34;"<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />