Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilFAQRechercherS'enregistrerMembresConnexion

Partagez | 
 

 curseur dynamique sauf pour un hotspot

Aller en bas 
AuteurMessage
jolan
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?
avatar

Nombre de messages : 13

Date d'inscription : 07/06/2018


MessageSujet: curseur dynamique sauf pour un hotspot   Jeu 20 Sep 2018 - 8:37

Le soleil part je retourne derrière le PC, et je galère avec mon curseur.
J'utilise la méthode du curseur dynamique du tuto ci joint :

https://www.youtube.com/watch?time_continue=763&v=ps19e-KD17Q

qui est parfaite mais je rencontre un petit soucis:

Dans toutes mes rooms le Hotspot 1 correspond au demi tour et a un changement de salle (c'est un point and click sans personnage) je voudrai lui attribuer un curseur spécifique (un onglet demi tour), directement dans le global script ? ou dois je écrire une fonction spécifique dans chaque room ? et quelle fonction utiliser ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 2627

Date d'inscription : 01/08/2006


MessageSujet: Re: curseur dynamique sauf pour un hotspot   Jeu 20 Sep 2018 - 13:39

Si tu es parfaitement constant et que donc tous les hotspot # 1 de toutes les pièces de ton jeu correspondent à "demi tour et changement de salle" (et uniquement les hotspots # 1) alors tu peux remplacer la ligne
Code:
if (hsurvol != hotspot[0]) Mouse.Mode = eModeInteract;
par ces quelques lignes :
Code:
if (hsurvol != hotspot[0]) {
    if (hsurvol == hotspot[1])
        Mouse.Mode = eModeOngletDemiTour; // Remplace par le nom de ton mode perso
    else
        Mouse.Mode = eModeInteract;
}

_________________
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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 1515

Age : 29

Localisation : Condate

Date d'inscription : 01/08/2011


MessageSujet: Re: curseur dynamique sauf pour un hotspot   Ven 21 Sep 2018 - 2:05

Ravi que mon tuto ait pu être utile ! sourire
Je l'ai justement revu hier et me demandais s'il étais suffisamment intelligible et pas trop confus pour quelqu'un d'extérieur.

Tu pourrais utiliser les propriétés personnalisées dont je parle à la fin mais c'est en effet encore plus simple de généraliser le processus avec la méthode de @Kitai (à condition qu'il n'y ait pas d'exception).

Néanmoins après avoir créé ton mode de curseur il reste nécessaire de définir le comportement au moment du clic. Si tu veux qu'à chaque fois le joueur retourne dans la pièce précédente je pense que le mieux est de modifier la fonction on_mouse_click comme suit :
Code:

function on_mouse_click(MouseButton button)
{

  if (IsGamePaused == 1){
  }

  else if (button == eMouseLeft)
 {
    if(Mouse.Mode == eModeOngletDemiTour) player.ChangeRoom(player.PreviousRoom);
    else Room.ProcessClick(mouse.x, mouse.y, mouse.Mode);
 }
}


Si tu utilises un système à la première personne, normalement tu ne devrais pas avoir de problème de coordonnées.

NB : Je ne sais pas ce qu'il se passe si on fait appel à player.PreviousRoom lorsqu'on se trouve dans la première pièce (Edit : d'après l'aide en ligne la valeur vaut -1, donc le jeu risque de crash). Le mieux dans ce cas là est de désactiver le hotspot 1 au premier chargement, puis de le réactiver en sortant de la pièce, par exemple.

_________________
"Je ne suis point cet assemblage de membres que l’on appelle le corps humain ; je ne suis point un air délié et pénétrant répandu dans tous ces membres ; je ne suis point un vent, un souffle, une vapeur, ni rien de tout ce que je puis feindre et m’imaginer, puisque j’ai supposé que tout cela n’était rien, et que, sans changer cette supposition, je trouve que je ne laisse pas d’être certain que je suis quelque chose."

René Descartes
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jolan
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?
avatar

Nombre de messages : 13

Date d'inscription : 07/06/2018


MessageSujet: Re: curseur dynamique sauf pour un hotspot   Ven 21 Sep 2018 - 7:56

Super super, je regarde tout ça ce week end et je vous tiens au jus.
Merci encore pour la réactivité et je trouve vos réponses toujours supers claires.
Et oui Valoulef ton tuto est accessible même pour le novice que je suis.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jolan
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?
avatar

Nombre de messages : 13

Date d'inscription : 07/06/2018


MessageSujet: Re: curseur dynamique sauf pour un hotspot   Dim 23 Sep 2018 - 14:35

super, j'ai changé un peu d'avis. Un onglet similaire pour les directions droite, gauche, demi tour ou tout droit (l’héroïne en train de marcher), un pour agir (la classique main), un pour regarder (un gros noeil). Donc mes hotspot 1,2,3 et 4 sont toujours affiliés à une direction et avec l'ajout de Kitai c'est parfait. Mais je laisse tomber le previous room, car certaines de mes rooms sont des énigmes à part entière dans les rooms et donc en quittant la pièce on se retrouve sur l'énigme si on l'a visité dans la pièce. (euhhh, mais si c'est clair).
merci encore
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jolan
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?
avatar

Nombre de messages : 13

Date d'inscription : 07/06/2018


MessageSujet: Re: curseur dynamique sauf pour un hotspot   Dim 23 Sep 2018 - 15:51

Alors par contre, je voulais animer mon curseur regarder (mon gros noeil clignote uniquement quand il passe sur un hotspot) et j'ai beau régler le delay de la view l'animation se fait à toute vitesse alors que quand je la teste c'est niquel, est ce dû à la ligne de code dans le function repeatedly_execute ou c'est moi qui déconne encore ?
je continue à trifouiller partout
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 1515

Age : 29

Localisation : Condate

Date d'inscription : 01/08/2011


MessageSujet: Re: curseur dynamique sauf pour un hotspot   Dim 23 Sep 2018 - 16:02

Je n'ai jamais utilisé de curseur animé, mais c'est probablement ça si ça réinitialise le curseur à chaque fois. C'est une animation spécifique à un endroit précis ? Comment tu as programmé ça on peut voir la partie correspondante dans ton repeatedly_execute ? Je pense qu'il faudrait tenter de remplacer un :
Code:
mouse.mode = eModeLookat;
par :
Code:
if (mouse.mode != eModeLookat) mouse.mode = eModeLookat;

Afin de n'attribuer un nouveau curseur "look at" que s'il n'est pas déjà actif, et donc éviter de le réinitialiser.

_________________
"Je ne suis point cet assemblage de membres que l’on appelle le corps humain ; je ne suis point un air délié et pénétrant répandu dans tous ces membres ; je ne suis point un vent, un souffle, une vapeur, ni rien de tout ce que je puis feindre et m’imaginer, puisque j’ai supposé que tout cela n’était rien, et que, sans changer cette supposition, je trouve que je ne laisse pas d’être certain que je suis quelque chose."

René Descartes
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jolan
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?
avatar

Nombre de messages : 13

Date d'inscription : 07/06/2018


MessageSujet: Re: curseur dynamique sauf pour un hotspot   Dim 23 Sep 2018 - 16:53

ah oui je vais tenter.
sinon j'utilisais quasiment tout ton tuto

Code:
function repeatedly_execute()
{
Hotspot*hsurvol=Hotspot.GetAtScreenXY(mouse.x, mouse.y);
Object*osurvol=Object.GetAtScreenXY(mouse.x, mouse.y);

if (player.ActiveInventory == null)
if (hsurvol != hotspot[0]){
if (hsurvol==hotspot[1])Mouse.Mode=eModedirection;
else if (hsurvol==hotspot[2])Mouse.Mode=eModedirection;
else if (hsurvol==hotspot[3])Mouse.Mode=eModedirection;
else if (hsurvol==hotspot[4])Mouse.Mode=eModedirection;
else Mouse.Mode=eModeregarder;}
else if (osurvol != null)Mouse.Mode=eModeInteract;
else Mouse.Mode=eModeregarder;

en gros mon regarder c'est un oeil ouvert, je lui demandais de s'animer (cligner) en cochant True dans animateonlyhotspot, et pour les directions sinon c'est parfait.
je tente.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jolan
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?
avatar

Nombre de messages : 13

Date d'inscription : 07/06/2018


MessageSujet: Re: curseur dynamique sauf pour un hotspot   Dim 23 Sep 2018 - 17:27

non, bon je suis un peu (complétement) paumé.
Je comprends bien l'idée de ne pas réattribuer un curseur mais je n'arrive pas à l'insérer au code.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 1515

Age : 29

Localisation : Condate

Date d'inscription : 01/08/2011


MessageSujet: Re: curseur dynamique sauf pour un hotspot   Dim 23 Sep 2018 - 23:48

Attention il n'y a aucune accolade ni point-virgule après ton
Code:
if (player.ActiveInventory == null)

Je suis même surpris que le jeu se lance sans erreur en l'état.

Concernant ton problème, remplace simplement cette ligne (ligne 12 dans ton message) :
Code:
else Mouse.Mode = eModeregarder;

Par celle-ci :
Code:
else if (Mouse.Mode != eModeregarder) Mouse.Mode = eModeregarder;

J'ai testé, ça fonctionne, et mon premier résultat était cohérent avec celui que tu décrit.

_________________
"Je ne suis point cet assemblage de membres que l’on appelle le corps humain ; je ne suis point un air délié et pénétrant répandu dans tous ces membres ; je ne suis point un vent, un souffle, une vapeur, ni rien de tout ce que je puis feindre et m’imaginer, puisque j’ai supposé que tout cela n’était rien, et que, sans changer cette supposition, je trouve que je ne laisse pas d’être certain que je suis quelque chose."

René Descartes
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jolan
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?
avatar

Nombre de messages : 13

Date d'inscription : 07/06/2018


MessageSujet: Re: curseur dynamique sauf pour un hotspot   Lun 24 Sep 2018 - 11:18

super, moi je le demandai à la ligne 14 du coup il s'animait mais seulement à moitié et que sur mes hotspots de direction.
Merci Valoulef, et oui il manque le point virgule qui a disparu je ne sais où au copier coller.
Et valoulef à tu fais d'autres tuto dans le genre du curseur dynamique, je ne trouve pas grand chose (en français).
Merci encore je m'y remets
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: curseur dynamique sauf pour un hotspot   

Revenir en haut Aller en bas
 
curseur dynamique sauf pour un hotspot
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Demande de sauf conduit - Noces de Ken Cohiba et Isabeau
» Fin de l'association UDE/Ankama pour Wakfu TCG
» CaC pour bi-élément feu/terre
» xp pour panda air
» Pano pvp pour un panda air tutufié lvl 165

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Questions / Réponses-
Sauter vers: