| [résolu] Déplacement perso + clic souris sur axe x (Maniac Mansion) | |
|
|
Auteur | Message |
---|
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: [résolu] Déplacement perso + clic souris sur axe x (Maniac Mansion) Mar 11 Mar 2014 - 10:39 | |
| Bonjour, Mon jeu a un déplacement strictement sur l'axe x (un peu à la manière d'un Maniac Mansion). J'ai donc une WalkableAreas qui est une ligne sur le sol. Problème : il faut cliquer proche du sol pour faire le déplacement. J'ai donc tenté dans le GlobalScript la chose suivante : - Code:
-
function on_mouse_click(MouseButton button) // called when a mouse button is clicked. button is either LEFT or RIGHT { if (mouse.Mode == eModeWalkto) { ProcessClick(mouse.x,mouse.y, mouse.Mode); player.Walk (mouse.x, mouse.y, eNoBlock, eWalkableAreas); } Mais ça ne marche pas... sauf si je mets eAnywhere, ce qui fait déplacer le perso n'importe où Merci d'avance pour les conseils
Dernière édition par chefgeorges le Mar 11 Mar 2014 - 13:22, édité 1 fois |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: [résolu] Déplacement perso + clic souris sur axe x (Maniac Mansion) Mar 11 Mar 2014 - 10:58 | |
| J'ai eu le même problème en codant Schrody the cat. Normalement, si on demande à un personnage de se déplacer en dehors d'une Walkable Area, il se rapproche le plus possible de la destination (mais en restant sur la Walkable Area). Mais ici, c'est probablement le fait de ne pas pouvoir changer de coordonnée y (dans le cas d'une Walkable Area d'un pixel de haut) qui bloque. Quoi qu'il en soit c'est simple ! Tu veux que ton personnage se déplace dans l'axe x selon la position du curseur, mais ne change pas de coordonnée y. Tu peux donc faire la chose suivante : - Code:
-
player.Walk(mouse.x, player.y, eNoBlock, eAnyware) Et même plus besoin de s'embarrasser avec les Walkable Area ! _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: [résolu] Déplacement perso + clic souris sur axe x (Maniac Mansion) Mar 11 Mar 2014 - 11:59 | |
| Ça semblait une bonne idée... sauf que ça marche pô |
|
| |
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: [résolu] Déplacement perso + clic souris sur axe x (Maniac Mansion) Mar 11 Mar 2014 - 12:04 | |
| |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: [résolu] Déplacement perso + clic souris sur axe x (Maniac Mansion) Mar 11 Mar 2014 - 12:11 | |
| Je vais me cacher très loin ? Nan mais c'est ça, quand y'a plus l'autocompletion aussi _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: [résolu] Déplacement perso + clic souris sur axe x (Maniac Mansion) Mar 11 Mar 2014 - 12:16 | |
| lol, désolé mais j'avais corrigé de moi-même le Anywhere Et je confirme que ça ne fonctionne pas du tout je remets le code complet : - Code:
-
function on_mouse_click(MouseButton button) // called when a mouse button is clicked. button is either LEFT or RIGHT { if (mouse.Mode == eModeWalkto) { ProcessClick(mouse.x,mouse.y, mouse.Mode); player.Walk (mouse.x, player.y, eNoBlock, eAnywhere); }
if (IsGamePaused() == 1) // Game is paused, so do nothing (ie. don't allow mouse click) { } else if (button == eMouseLeft) { ProcessClick(mouse.x,mouse.y, mouse.Mode); } else // right-click, so cycle cursor { mouse.SelectNextMode(); } } |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: [résolu] Déplacement perso + clic souris sur axe x (Maniac Mansion) Mar 11 Mar 2014 - 12:20 | |
| Quand tu dis "ça ne fonctionne pas", tu peux donner quelques précisions ? _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: [résolu] Déplacement perso + clic souris sur axe x (Maniac Mansion) Mar 11 Mar 2014 - 12:26 | |
| Je veux dire que je suis toujours obligé de cliquer en étant proche de la WalkableArea pour que le personnage se déplace. Par contre, je viens de constater que si je clique plus haut, il n'avance pas mais il se retourne tout de même. EDIT : En fait ça marche avec le clic droit !... Mais ça ne m’intéresse pas du tout. Je voudrais qu'il se déplace avec le clic gauche. Également le fait d'utiliser Anywhere va me causer des soucis, car j'ai restreint les WalkableAereas sur certaines scènes. |
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: [résolu] Déplacement perso + clic souris sur axe x (Maniac Mansion) Mar 11 Mar 2014 - 12:55 | |
| Nouveau code : - Code:
-
function on_mouse_click(MouseButton button) // called when a mouse button is clicked. button is either LEFT or RIGHT { if (mouse.Mode == eModeWalkto) { player.Walk (mouse.x, player.y, eNoBlock, eWalkableAreas); }
if (IsGamePaused() == 1) // Game is paused, so do nothing (ie. don't allow mouse click) { } else if (button == eMouseLeft) { ProcessClick(mouse.x,mouse.y, mouse.Mode); } else // right-click, so cycle cursor { mouse.SelectNextMode(); } } Ça fonctionne aussi avec eWalkableAreas, par contre je cherche encore pour définir cette action uniquement avec le clic gauche. |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: [résolu] Déplacement perso + clic souris sur axe x (Maniac Mansion) Mar 11 Mar 2014 - 13:19 | |
| Ah oui évidemment, tu peux très bien garder eWalkableAreas, c'était un peu bête de ma part. Pour rester sur le clic gauche, c'est facile, regarde ton code : rien ne restreint l'action de déplacement au seul bouton gauche. Du coup il faut faire comme ça : - Code:
-
function on_mouse_click(MouseButton button) // called when a mouse button is clicked. button is either LEFT or RIGHT { if (IsGamePaused() == 1) // Game is paused, so do nothing (ie. don't allow mouse click) { } else if (button == eMouseLeft) { ProcessClick(mouse.x,mouse.y, mouse.Mode);
if (mouse.Mode == eModeWalkto) { player.Walk (mouse.x, player.y, eNoBlock, eWalkableAreas); } } else // right-click, so cycle cursor { mouse.SelectNextMode(); } } Ton code pour le déplacement est simplement rajouté au bloc " else if(button == eMouseLeft)" Évite de copier directement mon code, je ne l'ai pas testé. _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: [résolu] Déplacement perso + clic souris sur axe x (Maniac Mansion) Mar 11 Mar 2014 - 13:22 | |
| Super ! c'était tout bête, lol. Merci |
|
| |
Contenu sponsorisé
| Sujet: Re: [résolu] Déplacement perso + clic souris sur axe x (Maniac Mansion) | |
| |
|
| |
| [résolu] Déplacement perso + clic souris sur axe x (Maniac Mansion) | |
|