| [résolu]Un seul curseur unique | |
|
|
Auteur | Message |
---|
Thebroch Cliqueur Emérite
Nombre de messages : 603
Age : 24
Localisation : Lorient
Date d'inscription : 23/07/2015
| Sujet: [résolu]Un seul curseur unique Sam 22 Aoû 2015 - 11:08 | |
| Bonjour je suis de retour et j'ai encore des problèmes voila je voudrais que mon jeu ne possède qu'un seul curseur qui me servirai a me déplacer et qui changerait quand je passerait sur un personnage ou une hotspots pour un curseur approprier voila j'ai fais un petit exemple : Voila ce triangle c'est mon curseur (pancher) et le rond rouge est une zone interactive et l' œil est mon curseur une fois sur la zone . _________________ Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.
|
|
| |
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: [résolu]Un seul curseur unique Sam 22 Aoû 2015 - 11:15 | |
| Deux templates: https://adventuregamestudio.1fr1.net/t2187-templateinterface-a-deux-clics-bassOu encore ce genre de script (à customiser): - Code:
-
function repeatedly_execute() { mx = mouse.x; my = mouse.y; // Mouse modes if (DefaultMouseBehavior) { //Just a bool to deactivate this during MiniGame if (player.ActiveInventory == null) { if (GetLocationType(mx, my) == eLocationNothing) { if (mouse.Mode != eModeWalkto) { mouse.Mode = eModeWalkto; // WalkTo mode if nothing under mouse } } else { if (mouse.Mode != eModeInteract) { mouse.Mode = eModeInteract; } } if (InventoryItem.GetAtScreenXY(mx, my)!= null) { //no else here if (mouse.Mode != eModeInteract) { mouse.Mode = eModeInteract; //Take inventory item } } } }
function on_mouse_click(MouseButton button) // called when a mouse button is clicked. button is either LEFT or RIGHT { int x = mouse.x; int y = mouse.y; if (IsGamePaused() == 1) { // Game is paused, so do nothing (ie. don't allow mouse click) } else if (button == eMouseLeftInv) { InventoryItem *item = InventoryItem.GetAtScreenXY(x, y); if (item != null) { if (player.ActiveInventory != null) { player.Say("I can't combine these items."); } else { player.ActiveInventory = item ; } } } else if (button == eMouseRightInv) { if(player.ActiveInventory != null) { player.ActiveInventory = null; } else { InventoryItem *item = InventoryItem.GetAtScreenXY(x, y); if (item != null) { LookAtInvItem(item); } } } else if (button == eMouseLeft) { ProcessClick(x, y, mouse.Mode); //Left click on thing launch interaction } else if (button == eMouseRight) {// right-click, so look at spot, and loss active.inventory if(player.ActiveInventory != null) { player.ActiveInventory = null; } else { ProcessClick(x, y, eModeLookat); //Look at things with right click } } }
|
|
| |
Thebroch Cliqueur Emérite
Nombre de messages : 603
Age : 24
Localisation : Lorient
Date d'inscription : 23/07/2015
| Sujet: Re: [résolu]Un seul curseur unique Sam 22 Aoû 2015 - 11:42 | |
| Merci Billbis je pense plutot que je vais prendre le script mais ou l’insérer et quelle sont les parties a customisé ? _________________ Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.
|
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: [résolu]Un seul curseur unique Sam 22 Aoû 2015 - 19:06 | |
| Sinon, j'utilise cette solution qui fonctionne très bien aussi Tu crées un cursor pour la fonction Regarder. Puis tu mets dans ta room le code suivant (n'oublie pas de le créer en allant sur l'event de ton hotspot. Je précise car sinon tu auras un blocage du script) : - Code:
-
function NomHotspot_MouseMove() { mouse.SaveCursorUntilItLeaves(); mouse.Mode = eModePerso; mouse.ChangeModeGraphic(eModePerso, 436); // à personnaliser évident :) mouse.ChangeModeHotspot(eModePerso, 30, 4); // pareil } Mais en fait je me demande si un simple : - Code:
-
function NomHotspot_MouseMove() { mouse.Mode = eModePerso; }
...ne fonctionnerai pas dans ton cas. Mon script est dans le cas où quelque soit le curseur de la souris (regarder, marcher, parler, etc.) il devient eModePerso sur le hotspot choisi. |
|
| |
Thebroch Cliqueur Emérite
Nombre de messages : 603
Age : 24
Localisation : Lorient
Date d'inscription : 23/07/2015
| Sujet: Re: [résolu]Un seul curseur unique Sam 22 Aoû 2015 - 21:37 | |
| Merci sa fonctionne mais comment faire pour que quand la souris quitte la hotspot le curseur repasse a celui d'avant ? _________________ Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.
|
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: [résolu]Un seul curseur unique Sam 22 Aoû 2015 - 21:56 | |
| Normalement c'est exactement ce que fait le 1er code que je t'ai donné C'est le but de mouse.SaveCursorUntilItLeaves(); |
|
| |
Thebroch Cliqueur Emérite
Nombre de messages : 603
Age : 24
Localisation : Lorient
Date d'inscription : 23/07/2015
| Sujet: Re: [résolu]Un seul curseur unique Sam 22 Aoû 2015 - 22:27 | |
| Je pense que tu n'as pas bien compris mon objectif après que le curseur soit ressortit du cercle il devrait revenir a l’état de triangle _________________ Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.
|
|
| |
hanakin Cliqueur Amateur
Nombre de messages : 492
Age : 59
Localisation : Angers
Date d'inscription : 12/09/2012
| Sujet: Re: [résolu]Un seul curseur unique Sam 22 Aoû 2015 - 22:45 | |
| Salut thebroch Moi j'utilise cette commande je ne sais pas si elle te conviendra changement de curseur lors du survol d'un hotspot dans les propriete du hotspot concerner click sur Mouse Moves over hotspot et dans la fonction j'ai ça - Code:
-
function hHotspot2_MouseMove() { mouse.SaveCursorUntilItLeaves(); //sauve l'apparence du curseur avant survol Mouse.Mode=eModebas ; //affiche le curseur perso } et normalement lorsque tu sort du hotspot le curseur doit redevenir comme avant Finalement ça revient exactement à ce que t'as dit Chefgeorge... Sauf que je fais une sauvegarde de curseur juste avant chaque modif et a chaque fois sur chaque hotspot _________________ Ce qui est utile à beaucoup l'emporte sur les désirs du petit nombre. ( Spock) |
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: [résolu]Un seul curseur unique Dim 23 Aoû 2015 - 6:02 | |
| - Thebroch a écrit:
- Je pense que tu n'as pas bien compris mon objectif après que le curseur soit ressortit du cercle il devrait revenir a l’état de triangle
Si, si Si ça ne fonctionne pas, c'est que le problème vient d'autre part. Quelle taille environ fait ton hotspot ? |
|
| |
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: [résolu]Un seul curseur unique Dim 23 Aoû 2015 - 8:35 | |
| Cher Thebroch,
je veux bien t'aider à faire l'interface de tes rêves, et les autres aussi certainement, mais si tu veux qu'on te donne plus de détail, il faut toi aussi nous en dire beaucoup plus. Notamment:
Ce que tu souhaite faire: 1 - quelle version d'AGS utilise tu ? Le language de script a beaucoup changer entre les 3.3.x et les 3.4.x. 2 - quel template utilise tu pour l'instant ? 3 - qu'y a t'il dans ton GlobalScript dans le repeatedly_execute() et dans le on_mouse_click(MouseButton button) ? 4 - veux tu faire un jeu avec 1 seul ou 2 clics ? Seulement le clic gauche ou clic gauche + clic droite ? 5 - combien de mode de souris souhaite-tu ? Marcher ? Regarder ? Interagir ? Parler ? Ramasser ? Pousser ? Frapper ? Changer de piéce ? etc. 6 - quel est le mode "normal" lorsqu'aucun objet, hotspot, personnage n'est sous la souris ? 7 - quel mode(s) doit (doivent) être choisi lorsque la souris survol un hotspot ? 8 - quel mode(s) doit (doivent) être choisi lorsque la souris survol un objet ? 9 - quel mode(s) doit (doivent) être choisi lorsque la souris survol un personnage? 10 - as-tu un inventaire ? comment souhaite tu gérer l'inventaire avec la souris ? Comment sélectionne-t-on un objet d'inventaire ? Comment le désélectionne-t-on ? Peut-on combinner des objets d'inventaires ? Peut-on les reguarder ? Comment ?
Pourquoi ça ne marche pas : On t'a donner une astuce, tu l'as mise en pratique, et ça ne marche pas. Certes mais on veux en savoir plus: 1 - le jeu refuse-t-il de compiler ? Quel est le message d’erreur ? 2 - le jeu crash-t-il ? Quel est le message d’erreur ? 3 - je jeu fonctionne bien, mais n'a pas exactement le comportement voulu ? Quel est le comportement actuel ? Quel est le comportement souhaité ?
Bon courage ! |
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: [résolu]Un seul curseur unique Dim 23 Aoû 2015 - 10:08 | |
| Oui J'ajoute aussi qu'il serait bien de savoir si tu as fait tous les tutos de Shai-la, sur le forum. Parce que ça aide quant même beaucoup |
|
| |
Thebroch Cliqueur Emérite
Nombre de messages : 603
Age : 24
Localisation : Lorient
Date d'inscription : 23/07/2015
| Sujet: Re: [résolu]Un seul curseur unique Dim 23 Aoû 2015 - 18:57 | |
| Oula beaucoup de truc a dire , donc deja le probleme est resolu grace a la ligne d'hanakin : - Code:
-
mouse.SaveCursorUntilItLeaves();
je possède la version 3.3 et mon problème étais que mon curseur de base était celui de marche et quand il passait sur ma hotspot il passais a celui d'interaction mais une fois ressorti il ne redevenais pas celui de marche sinon tout compilais bien le jeux ne crashais pas . Et oui j'ai suivi les tuto mais pas mal des commandes sont devenus obsolète . _________________ Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Un seul curseur unique Lun 24 Aoû 2015 - 2:05 | |
| J'ai pris l'initiative de passer le sujet en "résolu". - Thebroch a écrit:
- donc deja le probleme est resolu grace a la ligne d'hanakin :
- Code:
-
mouse.SaveCursorUntilItLeaves();
Juste par souci de justice, chef avait aussi proposé cette ligne dans son code Mais peut-être que l'interaction avec les lignes suivantes dans ton projet masquait son effet. - Thebroch a écrit:
- Et oui j'ai suivi les tuto mais pas mal des commandes sont devenus obsolète .
Oui ça c'est un problème. On attend encore quelqu'un de motivé pour reprendre les tutos à zéro (ou presque) avec la version la plus récente d'AGS. _________________ 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 ! |
|
| |
hanakin Cliqueur Amateur
Nombre de messages : 492
Age : 59
Localisation : Angers
Date d'inscription : 12/09/2012
| Sujet: Re: [résolu]Un seul curseur unique Lun 24 Aoû 2015 - 8:24 | |
| J'avais effectivement deja rendu a Cesar ce qui est a Cesar - Hanakin a écrit:
- Finalement ça revient exactement à ce que t'as dit Chefgeorge... Sauf que je fais une sauvegarde de curseur juste avant chaque modif et a chaque fois sur chaque hotspot
_________________ Ce qui est utile à beaucoup l'emporte sur les désirs du petit nombre. ( Spock) |
|
| |
Thebroch Cliqueur Emérite
Nombre de messages : 603
Age : 24
Localisation : Lorient
Date d'inscription : 23/07/2015
| Sujet: Re: [résolu]Un seul curseur unique Lun 24 Aoû 2015 - 10:50 | |
| En effet Kitai a raison , chefgeorges avait bien mis cette ligne dans son post mais comme tu l'as dis les lignes suivantes devais sans doute masquez sont effet car mon code se résume bêtement a ça : - Code:
-
function hHotspot4_MouseMove() { mouse.SaveCursorUntilItLeaves(); mouse.Mode = eModeInteract; }
Chefgeorges pouras tu seulement me pardonner un jour ? _________________ Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.
|
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: [résolu]Un seul curseur unique Lun 24 Aoû 2015 - 11:38 | |
| C'est pour ça que je boudais ce topic... lol |
|
| |
Contenu sponsorisé
| Sujet: Re: [résolu]Un seul curseur unique | |
| |
|
| |
| [résolu]Un seul curseur unique | |
|