chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: [résolu] Problème lié à une erreur d'identation {} Lun 31 Mar 2014 - 9:03 | |
| Bonjour, J'ai récemment modifié mon Global Script comme suit : - 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+GetViewportX(), 416, eNoBlock, eWalkableAreas); } else // right-click, so cycle cursor { mouse.SelectNextMode(); } } } C'était afin de permettre un déplacement à la Maniac Mansion en cliquant avec le clic gauche n'importe où sur l'écran. Ça fonctionne. Sauf que je viens de constater un soucis assez génant : quand je choisi de "regarder" un objet ou un hotspot, après l'action (ici souvent des display()) le curseur revient en mode "walk" là où il restait avant sur le mode "look" Comment faire ?
Dernière édition par chefgeorges le Lun 31 Mar 2014 - 18:47, édité 1 fois |
|
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu] Problème lié à une erreur d'identation {} Lun 31 Mar 2014 - 13:41 | |
| Salut chefgeorges, Je pense que tu devrais faire plus attention à l'indentation dans ton code, ça rendrait la lecture plus aisée (aussi bien pour toi que pour nous). Si j'indente correctement le code que tu as donné, ça donne ç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+GetViewportX(), 416, eNoBlock, eWalkableAreas); } else // right-click, so cycle cursor { mouse.SelectNextMode(); } } } Tu vois alors que ton " else // right-click, so cycle cursor" se trouve en complément du " if (mouse.Mode == eModeWalkto)", ce qui veut dire qu'en fait son code ne se déclenche pas lors d'un clic droit, mais lors d'un clic gauche où le mode de la souris n'est pas eModeWalkto. En ré-associant à nouveau le else au bon if, je pense que tu retrouveras l'effet désiré : - 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+GetViewportX(), 416, eNoBlock, eWalkableAreas); } } // L'accolade fermant le else if (button == eMouseLeft) else // right-click, so cycle cursor { mouse.SelectNextMode(); } } _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
|
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: [résolu] Problème lié à une erreur d'identation {} Lun 31 Mar 2014 - 18:46 | |
| - Kitai a écrit:
- Je pense que tu devrais faire plus attention à l'indentation dans ton code, ça rendrait la lecture plus aisée (aussi bien pour toi que pour nous)
Tu as tout-à-fait raison Et merci de répondre présent pour mes questions foireuses, lol |
|
Contenu sponsorisé
| Sujet: Re: [résolu] Problème lié à une erreur d'identation {} | |
| |
|