Salut,
je tente de faire un petit jeu du type puzzle bubble en Java (Glop, pas de remarque ), et là je bloque sur un point précis depuis 2 jours, donc sachant que je ne sais plus trop quoi faire je viens m’adresser à vous, ô maitres du pointeur et autres joyeustés.
Avant de rentrer dans le vif du sujet, sachez que je pense que c’est complètement indépendant du langage.
Ok, alors vous avez tous joué a puzzle bubble (ou l’excellent frozen bubble), dans l’idée, on dirige un canon, et on balance une « bulle » selon la direction du canon. C’est sur ce point très précis que ça merdouille. Je m’explique :
La rotation du canon permet d’obtenir un angle, si on suppose qu’il peut varier de 0 (tout à droite) a 180° (tout a gauche), ou, pour être plus précis puisque je travaille en radian, de 0 a PI (en passant par PI/2, qui est donc la position verticale).
Mon problème est ensuite de déterminer, a partir de cet angle en radian, la trajectoire de la bulle à partir de cet angle. Pour résoudre ce problème, j’ai tenté une approche « pas à pas » : je calcule le cosinus de cet angle pour obtenir la variation en X et le sinus de ce même angle pour la variation en Y. Et, a chaque itération, j’ajoute aux coordonnées de la bulle cette variation de X et de Y. Dans le principe ça marche très bien, en pratique c’est un peu différent.
Vous savez tous que le cosinus ou le sinus d’un angle, en valeur absolue, donne un flottant compris entre 0 et 1. A coté de ça, les coordonnées d’un point, en pixels, ben ce sont des entiers, 1, 2 , 3… mais pas des flottants. Donc, jusqu’à présent,j’ai arrondi les coordonnées obtenues (après ajout des variation de X et Y), mais le gros problème, c’est que du coup la trajectoire n’est plus précise du tout.
Sur un tel schéma (prenons l’axe des Y), elle peut adopter 2 positions : soit elle change (ce qui veut dire que la variation suite a l’ajout du sinus > ~0.51, qui est arrondi a 1), soit elle ne bouge pas (
Merci d’avance !
[Edité le 7/3/2003 par YoGi]