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
|
int tuxX0 = tuxX;
int tuxY0 = tuxY;
/* variable vitesse */
int v = 5;
/* variable de l'angle de la trajectoire*/
int angle = 40;
/* attraction tereste arrondi a 10 */
int g = 10;
/* hauteur entre le sol et le panier de basket
int b = 550;
/* calcul du point le plus haut de la trajectoire*/
int h = (int)( ( pow(v,2)*pow(sin(angle),2) ) / 2*g );
/* le temps que va mettre la balle a arriver a son point*/
int T = (int)( ( ( 2*v*sin(angle) )/g ) + sqrt ( ( 2 * fabs( h-b ) ) / g ) );
fprintf ( stderr, "Periode%d\n", T );
compteur = 0;
int temps = T;
fprintf(stderr, "compteur :%d\n",T);
/*tant que le compteur est different de t*/
while ( compteur != temps ) {
/* calcul de x et de y avec les composante sur l'axe des x et l'axe des y */
tuxX=(int)( (-0.5*g*pow(compteur,2)) + (v*sin(angle)*compteur) + tuxY0 );
tuxY=(int)((v*cos(angle)*compteur)+tuxX0);
/* application des cooordonnées pour l'image*/
dst.x = tuxX;
dst.y = tuxY;
dstblue.x = tuxX - 1;
dstblue.y = tuxY - 1;
/*chargement de l'image terrain dans la fenetre*/
apply_surface(0,0,terrain,screen);
SDL_FillRect(screen, &dstblue, SDL_MapRGB(screen->format, 0, 0, 255));
/* blit de l'image sur la fenetre*/
SDL_BlitSurface(image, NULL, screen, &dst);
SDL_Flip(screen);
//SDL_Delay(40);
fprintf ( stderr, "X:%d\tY:%d\n", tuxX,tuxY );
compteur ++;
}
voila j'espere que c'est plus comprehensible
merci |
Partager