| mouse.x et mouse.y 2D en mode 3D | |
|
|
|
Auteur | Message |
---|
234X24STUDIO Très bonne participation
Messages : 149
| Sujet: mouse.x et mouse.y 2D en mode 3D Sam 5 Mar 2011 - 23:42 | |
| Bonjour à tous, je suis en train de créer un jeu en 3D avec game maker 8 pro mais je suis en ce moment confronté à un probleme lié à la position de la souris.
Dans les jeux normaux en 2D, l'emplacement de la souris se définit par mouse.x et mouse.y
Voila mon probleme: En mode 3D comment faire pour que lorsqu'on clique sur le sol notre personnage aille à l'endroit cliqué ? (sachant que y est inversé en mode 3D et que je veux le mouse.x et le mouse.y pas en 3D mais en 2D par rapport à la view utilisé.
En faite mon object "mouse" est couché sur le sol du mode 3D au lieu de rester en mode 2D.
Merci d'avance. |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Dim 6 Mar 2011 - 12:43 | |
| en fait, il faut que tu fasse une sorte de detection entre la camera et le sol. par rapport a la position et a la direction X Y de la camera, tu fait un comme script "collision_line" pour detecter ou doit etre poser le personnage
Je risque de faire un exemple si ca me tente |
|
| |
234X24STUDIO Très bonne participation
Messages : 149
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Dim 6 Mar 2011 - 13:30 | |
| Eeeuu c'est complexe, j'ai pas tout compris, tu pourrais me le montrer sous forme d'exemple stp |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Dim 6 Mar 2011 - 15:11 | |
| |
|
| |
234X24STUDIO Très bonne participation
Messages : 149
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Dim 6 Mar 2011 - 16:47 | |
| Merci pour l'exemple, mais es ce possible la meme chose mais avec une souris qui ne reste pas bloqué au centre de l'écran. Parce que le joueur ne pourra pas cliquer sur le bouton "Menu" et ci ssa doit etre fait avec des racourcis claviers, c'est moins agreable à jouer. |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Dim 6 Mar 2011 - 18:23 | |
| on appele ca un FPS :/ en effet, c'est possible mais compliqué, je vais reflechir sur le sujet |
|
| |
Invité Invité
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Dim 6 Mar 2011 - 19:17 | |
| - 234X24STUDIO a écrit:
- Merci pour l'exemple, mais es ce possible la meme chose mais avec une souris qui ne reste pas bloqué au centre de l'écran. Parce que le joueur ne pourra pas cliquer sur le bouton "Menu" et ci ssa doit etre fait avec des racourcis claviers, c'est moins agreable à jouer.
fais en sorte que le programme lache la souris quand on appuie sur le bouton permettant l'accès au menu. et qu'il la remet au centre après, ça n'a rien de compliqué, une condition if ainsi qu'une variable booléenne suffiront. |
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Dim 6 Mar 2011 - 22:10 | |
| d3d_set_projection_ortho(). |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Dim 6 Mar 2011 - 22:19 | |
| - D-z a écrit:
- d3d_set_projection_ortho().
nan : il demande de placer un objet avec la ouris en 3 dimensions, que je sais faire seulement en FPS mais je crois avoir une idée pour contourner le probleme facilement, je termine mon exemple soit pour ce soir soit pour demain - Citation :
- fais en sorte que le programme lache la souris
quand on appuie sur le bouton permettant l'accès au menu. et qu'il la remet au centre après, ça n'a rien de compliqué, une condition if ainsi qu'une variable booléenne suffiront. c'est ce que j'aurait fait si c'etait un editeur pour FPS comme garry's mod ou la Crysis Sandbox. Dailleur c'est ce que j'aurait fait pour tout les autres type de jeu 3D |
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Dim 6 Mar 2011 - 22:21 | |
| Ben, s'il s'agit juste d'afficher un menu ou autre en 2D par dessus, ça ira. Par contre s'il faut par exemple savoir sur quel objet 3D le curseur se trouve... On appelle onilink_ le maëstro de la projection 3D o/ |
|
| |
234X24STUDIO Très bonne participation
Messages : 149
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Dim 6 Mar 2011 - 22:34 | |
| J'ai chercher comment je pouvais faire pendant toute l'aprés midi, mais j'ai rien trouvé. Je continurais demain. En faite il y a une camera qui suit le personnage, et quand on clique sur le sol il faut que le personnage aille à l'endroit indiqué. Il faudrait donc utiliser la souris 2D sur un plan 3D. C'est un véritable casse tete. Il faudra aussi que quand on clique sur une créature, le personnage se place à coté puis le frappe toutes les 2 secondes jusqu'a lui faire perdre toute sa vie. |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Dim 6 Mar 2011 - 22:56 | |
| a oui, je vois... ba ca c'est pas du tout simple ! il faut obligatoirement se baser sur les angles de la camera et de retranscrire les coordonnées de la souris en angle. j'essaie de terminer l'exemple la mais c'est vraiment pas simple du tout ^^ |
|
| |
Vivi Utilisateur confirmé: Rang **
Messages : 321 Localisation : dans ma chambre Projet Actuel : ogc²
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Lun 7 Mar 2011 - 0:54 | |
| bon voilà après de long calcule je peux dire : - Code:
-
mrz=((mouse_x/view_w)-0.5)*90; mrx=((mouse_y/view_h)-0.5)*(90/(view_w/view_h)); cx=px-((pz*(sin(rz+mrz)*cos(rx+mrx)))/sin(rx+mrx)); cy=py-((pz*(cos(rz+mrz)*cos(rx+mrx)))/sin(rx+mrx));
je sort ça d'un peu n'importe où et je l'ai pas testé mais ça devrait marcher... je tiens en compte que le plan a une équation de z=0 et que la camera à un angle de vue de 90 donc comme variable : -la position de la camera en px,py,pz -la rotation de la camera en rz,rx -la sortie : un point en (cx,cy,0) il y a peut être une inversion de signe quelque part |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Lun 7 Mar 2011 - 1:45 | |
| j'ai pas reussi a le faire fonctionné correctement, je compléterai si possible demain |
|
| |
Vivi Utilisateur confirmé: Rang **
Messages : 321 Localisation : dans ma chambre Projet Actuel : ogc²
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Lun 7 Mar 2011 - 11:57 | |
| ah bin ouai j'ai oublier de changer mrz et mrx en radians :p, mais sinon j'ai tester, ça marche plus ou moins mais c'est pas précis. J'édite quand j'ai trouvé. |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Lun 7 Mar 2011 - 12:46 | |
| c'est presque ca. en fait, c'est un sorte d'equation 3D, une sorte de sollision de ligne-surface. la ligne a pour equation... quelque chose et la surface a pour equation z=0. z est remplacer par le calcul de la ligne et on calcul... je ne sais pas si ca fonctionne ce que je vient de dire... |
|
| |
Vivi Utilisateur confirmé: Rang **
Messages : 321 Localisation : dans ma chambre Projet Actuel : ogc²
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Lun 7 Mar 2011 - 13:08 | |
| bin oui, c'est le calcule que je fais, et pour l'équation de la droite je me suis dit que de la faire partir du centre de la camera et puis lui donner l'angle de la camera + un angle en fonction de sa position serait une bonne idée mais ça ne marche pas bien, le problème c'est la projection 3D. Mais je pense qu'en bidouillant un peu ma formule ça devrait marcher pas trop mal. Là j'ai pas le temps mais ce soir peut-être. |
|
| |
234X24STUDIO Très bonne participation
Messages : 149
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Lun 7 Mar 2011 - 19:11 | |
| - vivicool a écrit:
- bon voilà après de long calcule je peux dire :
- Code:
-
mrz=((mouse_x/view_w)-0.5)*90; mrx=((mouse_y/view_h)-0.5)*(90/(view_w/view_h)); cx=px-((pz*(sin(rz+mrz)*cos(rx+mrx)))/sin(rx+mrx)); cy=py-((pz*(cos(rz+mrz)*cos(rx+mrx)))/sin(rx+mrx));
je sort ça d'un peu n'importe où et je l'ai pas testé mais ça devrait marcher... je tiens en compte que le plan a une équation de z=0 et que la camera à un angle de vue de 90 donc comme variable : -la position de la camera en px,py,pz -la rotation de la camera en rz,rx -la sortie : un point en (cx,cy,0) il y a peut être une inversion de signe quelque part Merci, je vais tester, je te dis si ça convient au jeu. Je savais pas qu'il fallait utiliser le cosinus et le sinus, en tout cas, MERCI BEAUCOOOUUUP |
|
| |
234X24STUDIO Très bonne participation
Messages : 149
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Lun 7 Mar 2011 - 21:14 | |
| Eeeuu, vu que dans mon jeu, la camera suit le personnage et que ci sa distance est inferieure à 200 alors la camera s'arrete: if point_distance(x,y,perso.x,perso.y)>=200 { move_towards_point(perso.x,perso.y,5) } else { move_towards_point(perso.x,perso.y,0) } Donc je dois faire plein de petits calculs pour créer les variables utilisées dans ton script. surtout pour trouver rz et rx pour rz j'ai trouver sa => rz=90-48/point_distance(x,y,perso.x,perso.y) je suis pas sûr ci c'est correct: Il faut utiliser la tangente, c'est coté opposé / hypoténuse sachant qu'on est dans un triangle rectangle. Je sais pas ci c'est correct, je doute beaucoup, mais pour la variable rx je galère, je pense qu'il faut s'aider de camera.x et de camera.y En faite il faut savoir que la camera n'est pas le meme object que le personnage. Sa complique un peu, mais le rendu sera super. |
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Lun 7 Mar 2011 - 23:27 | |
| Alors sachez que l'angle de projection de la souris à partir de sa position sur le plan de l'écran n'est pas une fonction affine (ce que j'ai cru un moment). Cherchez "Frustum" sur google si vous voulez une base, par contre je n'ai aucune idée des paramètres par défaut de la projection 3D de GM. |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Mar 8 Mar 2011 - 1:15 | |
| - D-z a écrit:
- Alors sachez que l'angle de projection de la souris à partir de sa position sur le plan de l'écran n'est pas une fonction affine (ce que j'ai cru un moment). Cherchez "Frustum" sur google si vous voulez une base, par contre je n'ai aucune idée des paramètres par défaut de la projection 3D de GM.
Moi aussi je le croyais . En tout cas, c'est une bonne information, je vais essayer de l'exploiter. |
|
| |
234X24STUDIO Très bonne participation
Messages : 149
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Mar 8 Mar 2011 - 18:16 | |
| Oula ! c'est pas ci simple que je le pensais |
|
| |
234X24STUDIO Très bonne participation
Messages : 149
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Mar 8 Mar 2011 - 18:31 | |
| existe t'il une fonction en GML pour trouver un angle sans avoir à faire un calcul de 10 pages ? |
|
| |
234X24STUDIO Très bonne participation
Messages : 149
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Mar 8 Mar 2011 - 18:35 | |
| |
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Mar 8 Mar 2011 - 18:44 | |
| J'espère que tu es calé en calcul vectoriel si tu ne veux pas obtenir des calculs trigonométriques monstrueux ^^ |
|
| |
234X24STUDIO Très bonne participation
Messages : 149
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Mar 8 Mar 2011 - 18:56 | |
| Es-ce ce code? - Citation :
main() { int i; /* Initialize OpenGL Performer */ pfInit(); /* Set number of pfPipes desired -- THIS MUST BE DONE * BEFORE CALLING pfConfig(). */ pfMultipipe(NumPipes); /* set multiprocessing mode */ pfMultiprocess(PFMP_DEFAULT); ... /* Configure OpenGL Performer and fork extra processes if * configured for multiprocessing. */ pfConfig(); ... /* Optional custom mapping of pipes to screens. * This is actually the reverse as the default. *// for (i=0; i < NumPipes; i++) pfPipeScreen(pfGetPipe(i), NumPipes-(i+1)); { /* set up optional DRAW pipe stage config callback */ pfStageConfigFunc(-1 /* selects all pipes */, PFPROC_DRAW /* stage bitmask */, ConfigPipeDraw /* config callback */); /* Config func should be done next pfFrame */ pfConfigStage(i, PFPROC_DRAW); } InitChannels(); ... /* trigger the configuration and opening of pfPipes * and pfWindows */ pfFrame(); /* Application's simulation loop */ while(!SimDone()) { ... } } /* CALLBACK FUNCTIONS FOR PIPE STAGE INITIALIZATION */ void ConfigPipeDraw(int pipe, uint stage) { /* Application state for the draw process can be initialized * here. This is also a good place to do real-time * configuration for the drawing process, if there is one. * There is no graphics state or pfState at this point so no * rendering calls or pfApply*() calls can be made. */ pfPipe *p = pfGetPipe(pipe); pfNotify(PFNFY_INFO, PFNFY_PRINT, “Initializing stage 0x%x of pipe %d”, stage, pipe); }
|
|
| |
234X24STUDIO Très bonne participation
Messages : 149
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Mar 8 Mar 2011 - 18:57 | |
| |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Mar 8 Mar 2011 - 19:32 | |
| - 234X24STUDIO a écrit:
- J'ai trouver sa en GML sur le frustrum http://www.flipcode.com/archives/Frustum_Culling.shtml
XD elle est bien drôle celle la ^^ ca fait longtemps qu'on nous l'avez pas fait C'est du C...bon, je ne suis pas enti-englès mais c'est fait un peut beaucoup d'anglais la ^^ je vais voir si il n'y a pas d'autres site pour ca tu peut toujours essayer de comprendre ce qu'est le Frustum, je pense que ca fera un poids en moins pour toi ^^ |
|
| |
234X24STUDIO Très bonne participation
Messages : 149
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Mar 8 Mar 2011 - 19:35 | |
| a mince, j'ai regarder vite fait et sa me paraissait du gml, sa ressemble au C. |
|
| |
234X24STUDIO Très bonne participation
Messages : 149
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D Mar 8 Mar 2011 - 19:45 | |
| Il faut que j'utilise le frustum pour pouvoir trouver l'angle x de la camera pour pouvoir trouver la variable rx pour pouvoir faire fonctionner un script pour pouvoir faire en sorte que lorsqu'on clique sur le sol le personnage y aille. |
|
| |
Contenu sponsorisé
| Sujet: Re: mouse.x et mouse.y 2D en mode 3D | |
| |
|
| |
| mouse.x et mouse.y 2D en mode 3D | |
|