Oué, ben, tu as bien une idée, et je te remercie de l'avoir exprimée clairement, mais on voit que tu ne t'es jamais beaucoup penché sur la réalisation d'un jeu de platteformes.
char jump_x[]={1,1,1,1,1,1};
D'après ce que je sais, cela ne sert strictement à rien, car tu fais en principe avancer ton personnage de la même façon que lorsqu'il ne saute pas
Voilà le saut de base, sous forme de parabole, pour augmenter la distance du saut il suffit tout simplement de modifier les composantes x en les multipliants par exemple ou même en employant des Fixed Points pour une précision extrême.
Pour x, voir plus haut et pour y:
char jump_y[]={0,1,2,2,1,0};
Mais cette parabole est plate et peu parabolique (le saut va ressembler à un caré)... Oui, je sais que c'est un exemple, mais de ça, je vois que pour avoir une parabole plus précise, il te faut plus de valeurs. Soit, ça ne pose pas de problèmes, mais à ce moment là, tu devras effectuer des multiplications/divisions pour trouver l'index qui correspond à la position du joueur selon la vitesse.... De plus, cela m'a fait réaliser l'imprecision extrême des tables. Si tu déformes ta parabole pour un saut, elle est étirée vers le haut, sachant que la hauteur du saut dépend peu de la vitesse (généralement un peu plus haut au délà d'un certaine vitesse), ta parabole ne va donc plus respecter les lois physiques qui disent que l'accélération verticale est égale à -g (en négligeant les autres forces), sauf si tu la déformes aussi en x, mais à ce moment là, la hauteur et la distance du saut seront liées, ce qui est incorrect (surtout que l'on a le droit de sauter verticalement sans vitesse horizontale)
Les tables nécéssitent donc énormément de calculs pour obtenir la même précision que le calcul en temps réel (c'est toujours une approximation, mais normalement très bonne si l'on n'utilise que des entiers). Autre désavantage, tu stockes tout cela par rapport à la position initiale (ah, tiens, incohérence là... pkoi jump_x est tjrs à 1 alors que jump_y est relatif à la position de départ ?), donc tu te compliques la vie lorsque tu dois gérer les collisions entre deux points de la parabole.
De tout celà, je t'explique comment on en vient au calcul en temps réel. Tout d'abord, on pense à stocker
yn + 1 - yn, mais on s'apperçoit que c'est la dérivée (c'est strictement exact avec des entiers si je ne me trompe... les autres confirmeront ou infirmeront). Bon, mais de toute façon, tu ne peux pas calculer la dérive car tu ne sais aps comment. Puis en réfléchissant bien, tu t'apperçois que la hauteur augmente rapidement au début, lentement au milieu, puis diminue lentement au milieu, et rapidement à la fin. Donc en principe, si tu affectes une grande valeur à la vitesse verticale, que tu ajoutes au saut à chaque image, et à laquelle tu retranches une constante que tu auras choisie en conséquence, tu obtiendrais le même comportement. Je ne sais pas si c'est pareil pour beaucoup de monde, mais c'est ce que j'avais pensé il y a quelques temps, avant de voir ça en sc. physiques et de voir que c'était exact (à quelques détails prêts, à savoir les frottements, mais ça se gère aussi

)
(je pense que ce n'est plus nécéssaire de répondre à la fin du message après ces explications)
Ce #roman# vous a été offet par GoldenCrystal ^^