JeuWeb - Crée ton jeu par navigateur
Problème pour les vrais matheux : gestion des obstacles. - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Problème pour les vrais matheux : gestion des obstacles. (/showthread.php?tid=2591)



Problème pour les vrais matheux : gestion des obstacles. - thelos - 21-05-2008

Salut à tous les bons matheux qui voudront m'aider car là j'en ai besoin.

Dans le cadre d'un module de combat en temps réel en flash, certains joueurs jouiront d'armes à distance : pistolets, lasers...

Pour tirer, plusieurs contraintes :
> La portée : calculée avec Pythagore dans mon repère isométrique.

> La gestion des obstacles : présence de rochers, maisons...
Pour cela je dois tester toutes les cases sur un ligne imaginaire joueur/cible pour savoir si il y a ou non un obstacle.

Un petit schéma pour vous illustrer le problème :
[Image: asupprimersj0.jpg]

Que me proposez-vous ?


RE: Problème pour les vrais matheux : gestion des obstacles. - Dolphy - 21-05-2008

Si tu as un repère, tu définie ta trajectoire comme une droite du plan.
Tu vas te retrouver avec une équation cartésienne de droite (ax + by + c = 0)
Après tu n'as plus qu'à vérifier si les coordonnées de ton obstacle vérifie l'équation, donc tu fais ton calcul avec les coordonnées de ton point, et avec une petite condition "si résulat = 0 alors je peux tirer" et le tour est joué.


RE: Problème pour les vrais matheux : gestion des obstacles. - zneman - 21-05-2008

de mettre toutes les cases présentent devant la cible et ton joueur, de mettre ça dans un array et de les tester ^_^ xD
Je n'aime pas les maths Sad


RE: Problème pour les vrais matheux : gestion des obstacles. - thelos - 21-05-2008

Dolphy a écrit :Si tu as un repère, tu définie ta trajectoire comme une droite du plan.
Tu vas te retrouver avec une équation cartésienne de droite (ax + by + c = 0)
Après tu n'as plus qu'à vérifier si les coordonnées de ton obstacle vérifie l'équation, donc tu fais ton calcul avec les coordonnées de ton point, et avec une petite condition "si résulat = 0 alors je peux tirer" et le tour est joué.

Merci, je vais mettre ça au clair Big Grin
Je vous tient au courant Wink


RE: Problème pour les vrais matheux : gestion des obstacles. - keke - 22-05-2008

pour calculer ta droite, il faut utiliser les coordonnée du joueur qui tire (A) et celui qui va s'en prendre une (B)

dans ton repère (X,Y)
la droite est Y= aX + b ( tu peux l'écrire autrement)

Pour trouver les valeurs a et b, il faut utiliser cette règle :
a = (YB - YA) / (XB - XA)
et b = YB - a (XB)

Ensuite, tu cherches dans ta BDD les objets qui sont sur cette droite ET dont la coordonné x est comprise entre XA et XB
SELECT * FROM POSITION WHERE (position.x * a + b) = position.y AND position.x BETWEEN XA and YA

Ca devrait marcher normalement.

Cependant, je vois déjà plusieurs problème :
- La courbe va te renvoyer des valeurs flottante ... Il faut que tu rajoute une fonction moyenne
- Parfois ton obstacle occuper toute ta case.
- Parfois tu peux tirer à travers ton obstacle.

Bref, maintenant c'est toi qui gère.

kéké.


RE: Problème pour les vrais matheux : gestion des obstacles. - Cartman34 - 22-05-2008

Comme proposer précédemment, tu calcules l'équation de la droite en faisant attention à l'échelle puis tu incrémentes X pour qu'il aille du joueur à la cible et tu vérifies s'il y a quelque chose à ces coordonnées en soumettant ta verif à un intervalle et non à une coordonnées précises car je suppose que tes obstacles ne font pas forcément la largeur d'un point.

Ca devient plus complexe si tu considère que ta balle perds de l'altitude...vive la gravité !
M'enfin en fait ce ne change rien de fondamental au calcul que j'ai développé car je pense que tu considère tout la case sur au moins la hauteur initiale de la balle sinon vois le programme de TS et supérieur.


RE: Problème pour les vrais matheux : gestion des obstacles. - thelos - 23-05-2008

IGstaff a écrit :Comme proposer précédemment, tu calcules l'équation de la droite en faisant attention à l'échelle puis tu incrémentes X pour qu'il aille du joueur à la cible et tu vérifies s'il y a quelque chose à ces coordonnées en soumettant ta verif à un intervalle et non à une coordonnées précises car je suppose que tes obstacles ne font pas forcément la largeur d'un point.

Ca devient plus complexe si tu considère que ta balle perds de l'altitude...vive la gravité !
M'enfin en fait ce ne change rien de fondamental au calcul que j'ai développé car je pense que tu considère tout la case sur au moins la hauteur initiale de la balle sinon vois le programme de TS et supérieur.

C'est parfait, j'ajouterai à cela les calculs de keke et ça devrait être bon.
Je finis le développement théorique de mon système de tir et j'attaque.
Notez que je compte utiliser ces calculs dans un module de combat en temps réel en flash ! Oui la route va être longue mais la carotte au bout de mon chemin l'est aussi Big Grin

Sinon pour ce qui est des contraintes pour le tir j'avais pensé à :
> mes obstacles
> la portée (facile)
--> on peut facilement considérer que la portée inclue la gravité Big Grin
> Un gestion de la hauteur soit pour :
1-> un bonus de portée
2-> une gestion avancée des obstacles
3-> Les deux ?!
Bref, la hauteur est encore un critère que je ne suis pas certain de développer mais en écrivant ces lignes je me rend compte de l'importance stratégique de la hauteur (que ce soit sur un jeu en ligne : ajout de stratégie ou en situation réelle : il faut reconnaitre que toutes les grandes batailles dépendent de la gestion du relief)

Amitiés, Thelos


RE: Problème pour les vrais matheux : gestion des obstacles. - keke - 26-05-2008

thelos a écrit :[...] il faut reconnaitre que toutes les grandes batailles dépendent de la gestion du relief)
A ça ! Pratiquement tout à fait d'accord. Le terrain a souvent offert un avantage stratégique ! Trafalga, conquêtes de rome, ...

L'orientation du soleil (on vise moins bien le soleil dans les yeux), le vent (propagation du feu) sont aussi des facteurs importants à ne pas négliger. A toute époque l'environnement est important ... pense aux sniper ou au parachutiste la nuit ... bon, je m'emballe.

Bon courage dans ton jeu !

Salut !
Kéké.


RE: Problème pour les vrais matheux : gestion des obstacles. - thelos - 26-05-2008

Emballes-toi plus souvent alors ! Merci Big Grin


RE: Problème pour les vrais matheux : gestion des obstacles. - keke - 27-05-2008

Oulà, me tente pas ^^

Kéké qui en faisant ses cartons pour le déménagement de ce WE à retrouvé tout plein de cahier Magdales ... c'est pas 7 cahiers d'idées, mais 10 maintenant ... plus celui que je suis en train d'écrire dans les transports en commun. reste à remettre toutes ces idées au clair.