Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  

 

 Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)

Aller en bas 
5 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
XZS
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
XZS


Nombre de messages : 66

Age : 43

Localisation : A porté de fusil de Paris

Date d'inscription : 24/04/2013


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptySam 27 Avr 2013 - 1:47

Salut les gens,

voilà le lien vers la 2e démo : http://we.tl/t3nx88xovp



Alors, mine-de-rien, même si c'est pas visible au 1er coup d'oeil, y'a eu un paquets de modifications dans le code
(inteface à 2 clics améliorée, animations uniques correctement lancées, cutscenes, ...). Donc, ça change pas mal le gameplay !
On peut survoler avec la souris pour trouver les zones interactives, et ça c'est pas rien sourire

Aussi, maintenant y'a un début d'intro (première scène uniquement pour l'instant, c'est histoire de donner un premier jet).
La démo se termine un peu en queue de poisson, parce que on arrive bloqué dans une room, sans rien d'autre à faire
que de se déplacer (mais ça peut être rigolo pour regarder l'animation des persos, cela dit). Parce que à partir de cette scène,
j'ai prévu un truc bien galère en code (attendez vous à me voir encore débarquer régulièrement sur le forum, héhé !),
mais qui devrait être bien marrant une fois finie !


Le "debug mode" est activé, pour les curieux.
Voilà, j'en dis pas plus, amusez vous à cliquer ici et là, à attendre aussi (maintenant y'a des "IdleView" plutot sympas), etc.

Merci d'avance pour vos retours et, un grand merci aussi à votre aide à tous et toutes, pour le code !
J'aurai déjà lâché l'affaire si j'avais pas eu vos coups de main, c'est clair.




--------------------------


après avoir un peu galéré sur le code, j'ai décidé de rependre pas mal de chose à zéro !
Grâce à l'aide de Kitai, Billbis et Skippy92, j'ai un code de bien meilleur qualité et j'ai pu réalisé tout ce que j'avais en tête jusqu'ici !!
J'en ai profité pour repenser les graphismes des personnages, qui sont maintenant dessiné et animé à la main.
Du coup, ça colle beaucoup plus au style graphique qu'avec le personnage 3D d'avant !

A propos du jeu, c'est l'histoire d'un mec qui se réveille en slip, dans un endroit inconnu et en partant à la quête de vêtements,
il lui arrive pleins de trucs chelous et fait des rencontres bien étranges aussi.

Il y a déjà quelques animations uniques, des descriptions "hotspots" sur pas mal éléments dans chaque room, un peu d'interactivité
(on peut danser, genre) et des objets animés, histoire de rendre tout ça un peu plus vivant.



Bref, voilà donc la démo, histoire de vous mettre plus dans l'idée. Normalement, le perso doit rentrer dans une boite de nuit,
mais le videur l'en empêche, car c'est une soirée interdite aux gens en slip. Il doit donc chercher une clé en forme de Anne Roumanoff
avec la tige plantée dans le cul, puis ouvrir la cabane du début, pour choper des fringues, et pouvoir rentrer dans la boite de nuit.
La suite de l'histoire viendra dans une prochaine version !

Il y a quelques trucs pas encore tout à fait au point, comme la direction vers la quelle se tourne le personnage principal,
quand il regarde des hotspots ou discute avec du monde (satané "FaceLocation" qui marche quand il veut !)




Quelques images, comme ça, pour le style :
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) IQB5VMLNXdGEw
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Ibg1kYs5fdcXbQ
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) IzHHyTry8ugod
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) ITHCgH1DORa6m

La clé Anne Roumanoff avec la tige plantée dans le cul, aussi :
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Ida4Hb9zkDoVI

_________________
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) IXA3RW9hzzL82


Dernière édition par XZS le Ven 17 Mai 2013 - 19:49, édité 3 fois
Revenir en haut Aller en bas
https://www.youtube.com/LBQ3TS
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Billbis


Nombre de messages : 1346

Date d'inscription : 10/05/2012


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptySam 27 Avr 2013 - 8:51

XZS a écrit:
La clé Anne Roumanoff avec la tige plantée dans le cul, aussi :
grand sourire


Félicitation pour cette première version jouable !

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
XZS
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
XZS


Nombre de messages : 66

Age : 43

Localisation : A porté de fusil de Paris

Date d'inscription : 24/04/2013


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptySam 27 Avr 2013 - 19:24

Merci Billbis sourire

Je sais que c'est pas très représentatif encore, tout ça.
Je fais en sorte d'au moins boucler ce que j'ai en tête en ce moment.
Après, je crois vraiment que je vais avoir besoin d'un coup de main pour le code,
parce que j'atteint mes limites de ce coté, j'ai pas la logique d'un bon scripter.


EDIT : bon, j'ai fait en sorte d'avancer, maintenant on peut aller dans l'océan, et chercher la fameuse clé sourire
Mais, y'a des trucs que je pige pas, certains objets qui devraient apparaître mais qui le font pas, etc.
J'crois aussi que je me complique la vie. Mon perso commence le jeu sur une animation unique (assis contre la poubelle,
puis qui se lève). Mais, ensuite, pour qu'il utilise à chaque fois ses mouvements normaux, je dois préciser
dans le script que je force l'utilisation de l'animation normale dans chaque "Room".
C'est lourd. Doit y avoir plus simple et logique, mais je trouve pas comment faire.

_________________
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) IXA3RW9hzzL82
Revenir en haut Aller en bas
https://www.youtube.com/LBQ3TS
XZS
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
XZS


Nombre de messages : 66

Age : 43

Localisation : A porté de fusil de Paris

Date d'inscription : 24/04/2013


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyLun 29 Avr 2013 - 20:09

Je fais un appel officiel pour trouver un scripter ! Ne serait-ce qu'en partie (les bases, la GUI, ...). Ca ira dix fois plus vite que si j'apprends (difficilement) moi-même à scripter.

Si quelqu'un est intéressé, merci de me faire signe.
Je continue les graphismes et le scénario, j'ai vraiment envie que ce jeu voit le jour !

_________________
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) IXA3RW9hzzL82
Revenir en haut Aller en bas
https://www.youtube.com/LBQ3TS
Threepwood
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
Threepwood


Nombre de messages : 144

Age : 51

Localisation : Hyères

Date d'inscription : 29/12/2012


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyLun 29 Avr 2013 - 22:12

Honnetement, je suis aussi plus côté designer/graphiste mais j'ai pris le temps d'apprendre a utiliser ags et ce n'est pas si compliqué que ça...
Certe ça te ralentit...mais on est jamais aussi biens servi que par soit même...
les intervenant ici sont tous ultra qualifié pour apporter de l'aide rapidement...je te conseille viviement de continuer a essayer d'apprendre le langage et demander des conseils en cas de bloquage... comme mo itu seras ralentit par la cadence mais comme moi, tu ne semble pas pris a la gorge par l'urgence de sortir ton jeu comme le serai un ecrivain par exemple...

Je dis ça car même moi qui n'y connaissait rien suis arrivé à creer quelque chose de potable sous ags en 2 mois...et tu sembles arriver vite a comprendre les bases si j'en juge ta demo

Il ne faut pas être pressé....de plus passer par quelqu'un d'autre pour le coding ne t'accellerea pas forcement la sortie du jeu...un externe dans le domaine du bénéevolat ça avancera pas forcement aussi vite que ce que tu crois et que si tu t'en occupais toi même

Enfin c'est mon avis...mais il ne faut pas precipiter les choses

_________________
Projet en cours : KINGEEKS QUEST
http://kingeeks.blogspot.fr/
Revenir en haut Aller en bas
XZS
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
XZS


Nombre de messages : 66

Age : 43

Localisation : A porté de fusil de Paris

Date d'inscription : 24/04/2013


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyMar 7 Mai 2013 - 16:35

En premier post, une mise-à-jour avec la première démo du jeu !
Merci pour vos retours/avis/autres sourire

_________________
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) IXA3RW9hzzL82
Revenir en haut Aller en bas
https://www.youtube.com/LBQ3TS
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Billbis


Nombre de messages : 1346

Date d'inscription : 10/05/2012


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyMar 7 Mai 2013 - 17:42

Félicitation pour cette version démo, XZS !
J'ai testé et finit ! Félicitation ! Des graphismes très soignés, mais aussi un style personnel sur les personnage, et un projet bien finit dans l'ensemble. Je n'ai rencontré aucun bug. ^^
Quelques petites remarques que j’espère constructives, même si j'imagine que tu travailles déjà sur certains points, (ne les prend surtout pas mal) :
  • Bravo pour les animations d'une remarquable fluidité. En particulier celle de la danse en extérieure. clin d'oeil Tu utilise un logiciel d'animation squelettique ? En revanche, l'animation de la marche m'a moins convaincu : les genoux ne remontent pas (assez) au retour de la jambe. De même à l’arrêt, les orteils devraient retoucher le sol et pas remonter vers le haut comme ils le font.
  • Vu que c'est une version démo / béta amenée a évoluéer, tu pourrais afficher un numéro de version pour faciliter les futures discussions.
  • Le GUI de confirmation de Quit n'est pas encore personnalisé.
  • La photo "interdit aux gens en slip" fait trop photo, justement. Elle jure un peu avec le reste des graphismes.
  • L'usage dans un Point & Click veut que le personnage dise une phrase plus ou moins débile lorsque aucune interaction n'est possible. J'ai trouvé beaucoup de hotspots / objets / personnages où un clic dans un mode regarder / utiliser / parler n’enclenche aucune réaction, ce qui n'aide pas à repérer les zones interactives ( grand sourire ).
  • Un des moyens permettant de repérer facilement ces zones interactives peut-être d'afficher dans un GUI un @OVERHOTSPOT@. Quelques sujets pourrons t'aider sur ce forum.
Trois petites remarques plus personnelles, et donc plus sujettes à polémiques :
  • Je ne suis pas fan de l'interface proposée par le template par défaut avec AGS. Je préfère largement les systèmes à deux clics (clic droit : regarder, clic gauche : marcher / parler / interagir / utiliser un objet d'inventaire). Cela dit, il n'y a pas de template officiel permettant cette interface, et la mettre en place requiert du coup quelques compétences en script (rien de bien extraordinaire, mais quand même)... A terme, je ferais surement un template à partir de mon projet en cours, mais ce sera dans trèèèèèès longtemps.
  • Le "XZS present" au début est un peu pompeux...
  • L'humour est un peu trop trash et gratuit à mon goût. Pas beaucoup, juste un peu. Je pense en particulier à la clef Anne Roumanoff (le personnage pourrais dire un truc du genre : "Tiens, une figurine Anne Roumanoff avec une clé dans le ... !!!", au lieu d'y aller direct.), et à la vidéo pornographique pour enfant. Pas drôle, pas utile : Juste trash et gratuit.

En tout cas, encore bravo pour cette démo propre et prometteuse. Contrairement à ce que la liste des points améliorables laisse suggérer ci-dessus, j'ai bien apprécié le jeu dans son ensemble, et son humour en particulier. Bon courage pour la suite !

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
XZS
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
XZS


Nombre de messages : 66

Age : 43

Localisation : A porté de fusil de Paris

Date d'inscription : 24/04/2013


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyMar 7 Mai 2013 - 21:31

Merci Billbis, c'est exactement le genre de critiques constructives que j'apprécie.

Billbis a écrit:
Tu utilise un logiciel d'animation squelettique ?
Oui, en l’occurrence Anim Studio Pro 9, qui est vraiment bon dans ce domaine (mais beaucoup moins dans d'autres...).
Citation :
En revanche, l'animation de la marche m'a moins convaincu
Point tout à fait valable. Mais, en faisant des tests, cette démarche à l'avantage d'être plus simple pour une vue de dos et surtout (enfin à mes yeux), ça donne encore plus un coté "loque" au personnage principal, traîne-savate disons.
Citation :
afficher un numéro de version pour faciliter les futures discussions.
C'est le cas quand on clique sur le "About" dans les options sourire Mais, je trouve ca trop fantaisiste les numéros de version, enfin dans le cas où, comme moi, on avance le développement au feeling (l'histoire s'écrit avec à peine plus d'avance que le fur et à mesure).
Citation :
Le GUI de confirmation de Quit n'est pas encore personnalisé.
J'ai cherché comment le personnaliser (sur le site officiel de AGS) en créant une GUI "gQuit", mais le tutoriel trouvé est pour les coders déjà un peu plus expérimenté que moi (il manque les premières étapes, disons). Mais, c'est bien évidement prévu à terme, celui par défaut est quand même asser moche.
Citation :
La photo "interdit aux gens en slip" fait trop photo, justement.
Modif noté ! Même si ça ne me gêne pas tellement plus que ça, j'ai en tête d'utiliser des photos de personnes réelles pour un passage à venir du jeu, donc... sourire
Citation :
L'usage dans un Point & Click veut que le personnage dise une phrase plus ou moins débile lorsque aucune interaction n'est possible. J'ai trouvé beaucoup de hotspots [...] où un clic dans un mode [...] n’enclenche aucune réaction, ce qui n'aide pas à repérer les zones interactives
Tout à fait ! Juste que ça viendra dans un deuxième, voire dernier, temps. Déjà, mettre tous les hotspots/etc. en place avec au moins leur interaction principale, puis ensuite leur rajouter à tous au moins une phrase spécifique. Je vais jeter un œil à tes liens !
Citation :
Je ne suis pas fan de l'interface proposée par le template par défaut avec AGS. Je préfère largement les systèmes à deux clics
Moi non plus, mais elle est suffisante. Celle de Skippy92 pour son remake de Days of the Tentacle me plait beaucoup, pas l'utilisation à 9 verbes, mais l'interface à 2 clics comme tu l'a décrite.
Citation :
Le "XZS present" au début est un peu pompeux...
grand sourire Mais non. Bon un peu, d'accord. J'vais baisser d'un ou deux picas la taille de la police, promis !
Citation :
L'humour est un peu trop trash et gratuit à mon goût.
Effectivement, les goûts et les couleurs ça se discute pas. Quelques textes ne me conviennent pas non plus encore, cela dit. L'idée c'est de rester dans l'humour, mais plus subtile à l'avenir. Après, c'est clair que je ne veux pas rester soft comme un Monkey Island, mais sans tomber dans le Jean Marie Bigard non plus !
Bon, je sais ce qu'il me reste à (re)faire, maintenant ! clin d'oeil

_________________
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) IXA3RW9hzzL82
Revenir en haut Aller en bas
https://www.youtube.com/LBQ3TS
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Billbis


Nombre de messages : 1346

Date d'inscription : 10/05/2012


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyMer 8 Mai 2013 - 6:26

XZS a écrit:
C'est le cas quand on clique sur le "About" dans les options sourire Mais, je trouve ca trop fantaisiste les numéros de version, enfin dans le cas où, comme moi, on avance le développement au feeling (l'histoire s'écrit avec à peine plus d'avance que le fur et à mesure).
Ha oui. Parfait ! Il ne m'en faut pas plus. ^^

XZS a écrit:
J'ai cherché comment le personnaliser (sur le site officiel de AGS) en créant une GUI "gQuit", mais le tutoriel trouvé est pour les coders déjà un peu plus expérimenté que moi (il manque les premières étapes, disons). Mais, c'est bien évidement prévu à terme, celui par défaut est quand même asser moche.
En fait, l'astuce (plus ou moins bien détaillé ou ) consiste à créer un GUI de confirmation normalement, appelé gQuit par exemple. Sur son bouton oui, tu mets :
Code:
function bYesQuit_OnClick(GUIControl *control, MouseButton button)
{
  QuitGame(0); //on quitte SANS demander confirmation via le GUI moche AGS
}
Sur son bouton non :
Code:
function bNoQuit_OnClick(GUIControl *control, MouseButton button)
{
  gQuit.Visible = false;
}
Et on fait apparaitre ce GUI lorsque le joueur appui sur le(s) bouton(s) quitter :
Code:
function bQuitGame_OnClick(GUIControl *control, MouseButton button)
{
  gQuit.Visible = true;
}
Bon courage !

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyMer 8 Mai 2013 - 13:58

J'ai aussi joué à cette démo et l'ai finie. Déjà félicitations, c'est très propre et fluide.

Je n'ai pas beaucoup de commentaires à faire dessus. Pour ma part l'animation du personnage, y compris l'animation de ses pieds, ne m'a pas fait tiquer.
En revanche je partage l'avis de Billbis sur l'incrustation directe des photos dans le jeu, ainsi que sur l'interface. Jouant sur un PC portable, le fait de devoir faire un clic droit (ou aller chercher dans le menu en haut) pour passer de "marcher" à "agir" m'agace un peu et casse ma "dynamique" (oui je suis très dynamique quand je joue).

En tout cas c'est prometteur et j'imagine que ça doit être gratifiant d'avoir pu livrer cette version. Et un bon point pour le personnage en 2D, il s'incruste pour le coup bien mieux à l'environnement que le perso 3D qui apparaissait sur tes captures au départ.

_________________
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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
XZS
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
XZS


Nombre de messages : 66

Age : 43

Localisation : A porté de fusil de Paris

Date d'inscription : 24/04/2013


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyMer 8 Mai 2013 - 14:23

Hey merci Kitai !

Après avoir lu vos remarques à Billbis et toi, sur l'interface, vu que ça rejoint mon envie première d'avoir aussi une interface à 2-clics (mais aussi mon manque total de connaissance sur comment en créer une), je pense à la refaire dans ce style.

Vous pensez que c'est trop difficile de changer l'interface alors que le développement est déjà (un peu) avancé ? Ou remplacer la GUI peut se faire sans trop de difficulté ?

Citation :
Billbis : ", il n'y a pas de template officiel permettant cette interface, et la mettre en place requiert du coup quelques compétences en script [...] je ferais surement un template à partir de mon projet en cours, mais ce sera dans trèèèèèès longtemps."
Arf ! sourire


PS : après deux trois tentatives dans le GlobalScript, j'ai un GUI pour quitter qui marche impeccablement !

_________________
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) IXA3RW9hzzL82
Revenir en haut Aller en bas
https://www.youtube.com/LBQ3TS
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyMer 8 Mai 2013 - 15:38

XZS a écrit:
Vous pensez que c'est trop difficile de changer l'interface alors que le développement est déjà (un peu) avancé ? Ou remplacer la GUI peut se faire sans trop de difficulté ?
Je pense que c'est tout à fait faisable. La seule chose est que ce genre d'interface minimaliste ne permet généralement que deux types d'interactions avec chaque élément (personnages > regarder/parler, zones interactives > regarder/agir). Donc si tu avais associé trois types d'interactions à un objet torche par exemple (regarder > "wah, une torche, comme dans les films !", parler > "on me trouvera peut-être snob, mais je doute qu'une torche ait beaucoup de conversation", agir > "et hop, dans ma poche, ni vu ni connu !"), ça peut poser problème.
Mais c'est tout de même une configuration qui reste très rare, à tel point que dans mon exemple, "parler" ne sert à rien. À vrai dire, je pense que seuls les jeux qui misent beaucoup sur les tentatives loufoques de la part du joueur auront prévu un événement pour chaque type d'interaction, et c'est pertinemment le genre de jeux qui justifient à mon goût les interfaces à verbes multiples.

Bref, si tu n'as pas déjà introduit foison d'interactions diverses sur un même élément, passer à une "interface à deux clics" est parfaitement réalisable.

_________________
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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
XZS
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
XZS


Nombre de messages : 66

Age : 43

Localisation : A porté de fusil de Paris

Date d'inscription : 24/04/2013


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyMer 8 Mai 2013 - 21:12

Pour l'interface à 2-Clics, j'ai adapté un peu de code trouvé sur le net.
Je l'ai donc mis en ajout des fonctions déjà existantes dans le GlobalScript.asc
(en désactivant une bonne partie devenue inutile du code d'origine) :

Code:
function on_mouse_click(MouseButton button) {
  if (button == eMouseLeft) {
  // Pour marcher
    ProcessClick(mouse.x,mouse.y,eModeWalkto);
  }
  else if (button == eMouseRight) {
  // Pour interagir
    ProcessClick(mouse.x,mouse.y,eModeInteract);
  }
}

J'ai donc bien le "walk" par défaut sur le clic gauche, ainsi que le "Interact" sur le clic droit.
J'ai remplacé tous mes anciens "TalkTo" et "LookAt" en "Interact", ça marche !

Par contre, je ne peux plus utiliser les objets de l'inventaire. confus
Comment réactiver cette fonction, tout en gardant le style "2-Clics : gauche > Walk / droit > Interact" ?
J'imagine que c'est en rapport avec ça (toujours dans le GlobalScript, partie "function on_mouse_click(MouseButton button)" :
Code:
if (player.ActiveInventory!=null)  //Si le joueur a un objet de l'inventaire actif.
{
  mouse.Mode=eModeUseinv; //Alors on passe en mode "utilise l'inventaire sur"
}
  else
{
        mouse.Mode=eModeInteract); //J'imagine qu'il faut préciser que si pas d'inventaire actif,
                                  //alors on reste en "Interact" normal.
                                  //Mais ça ne semble pas fonctionner... :/
}

_________________
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) IXA3RW9hzzL82
Revenir en haut Aller en bas
https://www.youtube.com/LBQ3TS
Skippy92
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
Skippy92


Nombre de messages : 75

Age : 45

Localisation : Bagneux

Date d'inscription : 02/03/2013


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyMer 8 Mai 2013 - 22:14

Démo testée.
Bravo pour les graphismes, c'est très réussi !
Félicitations.

Billbis et Kitai ont déjà dit beaucoup de choses.
J'ajouterai juste deux remarques :
- Je trouve que la boîte est un peu trop au premier plan, laissant le passage vers la room suivante un peu réduit.
- Il n'y a pas de porte pour sortir de la cabane.

En tout cas, très encourageant pour ton jeu à venir !
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyMer 8 Mai 2013 - 22:30

XZS a écrit:
Par contre, je ne peux plus utiliser les objets de l'inventaire. confus
Comment réactiver cette fonction, tout en gardant le style "2-Clics : gauche > Walk / droit > Interact" ?
J'imagine que c'est en rapport avec ça (toujours dans le GlobalScript, partie "function on_mouse_click(MouseButton button)" :
En effet, c'est en rapport avec ça.
Si tu regardes ton code plus haut, tu lances le mode marche avec le clic gauche et le mode interaction avec le clic droit. Mais nulle part dans ce code tu ne considères la possibilité d'utiliser un objet d'inventaire.
La solution est donc, comme dans le bout de code que tu as copié ici, de vérifier la propriété ActiveInventory, comme ça :
Code:
function on_mouse_click(MouseButton button) {
  if (button == eMouseLeft) {
    if (player.ActiveInventory != null) // Si le joueur a un objet d'inventaire dans la main
      ProcessClick(mouse.x,mouse.y,eModeUseInv); // On lance en mode Inventaire
    else // Sinon, en mode marcher
      ProcessClick(mouse.x,mouse.y,eModeWalkto);
  }
  else if (button == eMouseRight) {
  // Pour interagir
    ProcessClick(mouse.x,mouse.y,eModeInteract);
  }
}
Tu peux le faire en clic droit si tu préfères :
Code:
function on_mouse_click(MouseButton button) {
  if (button == eMouseLeft) {
  // Pour marcher
    ProcessClick(mouse.x,mouse.y,eModeWalkto);
  }
  else if (button == eMouseRight) {
    if (player.ActiveInventory != null) // Si le joueur a un objet d'inventaire dans la main
      ProcessClick(mouse.x,mouse.y,eModeUseInv); // On lance en mode Inventaire
    else // Sinon, en mode interaction
      ProcessClick(mouse.x,mouse.y,eModeInteract);
  }
}

XZS a écrit:
J'ai donc bien le "walk" par défaut sur le clic gauche, ainsi que le "Interact" sur le clic droit.
J'ai remplacé tous mes anciens "TalkTo" et "LookAt" en "Interact", ça marche !
En fait tu peux même faire plus efficace : tu peux scruter la zone survolée par la souris pour voir s'il y a des interactions disponibles !
Cela se fait avec la fonction IsInteractionAvailable.
Imagions que tu veuilles que le clic gauche corresponde au mode marcher quand tu ne survoles rien, au mode regarder quand il y a quelque chose à regarder, et le clic droit au mode parler s'il y a de quoi parler, au mode interagir sinon.
Tu obtiens quelque chose comme ça :
Code:
function on_mouse_click(MouseButton button) {
  if (button == eMouseLeft) {
    // S'il y a une interaction disponible à cet endroit de l'écran en mode "regarder"
    if (IsInteractionAvailable(mouse.x,mouse.y, eModeLookat))
      ProcessClick(mouse.x,mouse.y,eModeLookat); // On lance le mode "regarder"
    else // Sinon, on lance le mode "marcher"
      ProcessClick(mouse.x,mouse.y,eModeWalkto);
  }
  else if (button == eMouseRight) {
    if (player.ActiveInventory != null) // Si le joueur a un objet d'inventaire dans la main
      ProcessClick(mouse.x,mouse.y,eModeUseInv); // On lance en mode Inventaire
    else { // S'il n'a pas d'objet
      // Si on peut parler
      if (IsInteractionAvailable(mouse.x,mouse.y, eModeTalkto))
        ProcessClick(mouse.x,mouse.y,eModeTalkto); // on parle
      // Sinon, on interagit !
      else
        ProcessClick(mouse.x,mouse.y,eModeInteract);
    }
  }
}
Ça ce n'est qu'un exemple, après tu peux utiliser cette fonction pour changer l'apparence de ton curseur au survol, histoire de rendre ce qui se trouve à l'écran plus lisible.

_________________
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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
XZS
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
XZS


Nombre de messages : 66

Age : 43

Localisation : A porté de fusil de Paris

Date d'inscription : 24/04/2013


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyMer 8 Mai 2013 - 22:47

Kitai, j'ai bien mis le code (mode "interagir avec clic droit"), donc maintenant je peux utiliser un objet de l'inventaire pour le faire interagir avec un hotspot. Mais, par contre, pas moyen de retourner en mode "Interact" normal, avec le clic droit ! L'objet de l'inventaire reste actif une fois utilisée et même si je change manuellement de mode (en passant par la GUI principale, qui est toujours la même qu'avant).

Hors-Sujet : foutu AGS, qui est sensible à la casse (par exemple "eModeWalkTo" ne marche pas, mais "eModeWalkto" oui, tout comme "eModeLookAt" et "eModeLookat") Grrr !

Hors-Sujet 2 : Merci à vous tous pour votre support et l'épatante réactivité dans votre aide !

_________________
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) IXA3RW9hzzL82
Revenir en haut Aller en bas
https://www.youtube.com/LBQ3TS
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyJeu 9 Mai 2013 - 7:59

XZS a écrit:
Mais, par contre, pas moyen de retourner en mode "Interact" normal, avec le clic droit ! L'objet de l'inventaire reste actif une fois utilisée et même si je change manuellement de mode (en passant par la GUI principale, qui est toujours la même qu'avant).
C'est parce que dans notre code, on ne regarde pas le mode de la souris pour déclencher eModeUseInv, on regarde si le personnage a un objet d'inventaire en main avec ActiveInventory.
C'est donc cette propriété qu'il va falloir modifier si tu veux que le clic cesse de se déclencher en mode eModeUseInv. Une solution peut être de retirer l'objet d'inventaire de la main du joueur dès qu'il a cliqué avec, comme ça :
Code:

  // ...
  else if (button == eMouseRight) {
    if (player.ActiveInventory != null) { // Si le joueur a un objet d'inventaire dans la main
      ProcessClick(mouse.x,mouse.y,eModeUseInv); // On lance en mode Inventaire
      player.ActiveInventory = null; // On retire l'objet d'inventaire de la main du joueur
    }
    // suite éventuelle du code clic droit

_________________
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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Billbis


Nombre de messages : 1346

Date d'inscription : 10/05/2012


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyJeu 9 Mai 2013 - 9:45

Coucou XZS.
Félicitation pour t'être lancé dans la modification du gameplay !
Moi je partirai plutôt sur une modification dynamique du mode de curseur, comme Kitai l'a suggéré :
Kiati a écrit:
Ça ce n'est qu'un exemple, après tu peux utiliser cette fonction pour changer l'apparence de ton curseur au survol, histoire de rendre ce qui se trouve à l'écran plus lisible.
En gros, on va modifier le curseur en fonction de ce qu'il y a sous la souris, donc de façon dynamique dans un repeatidly execute. Si c'est un personnage, ce sera le mode eModeTalkto, si c'est un InvItem eModeInteract, si c'est rien eModeWalkto, et si c'est un hotspot ou un objet, soit eModeInteract, soit un autre mode personnalisé eModeChangeRoom (mode de curseur que j'ai crée en modifiant le Usermode1, pour les objets ou hotspots qui font changer de room) en fonction d'une custom property d'objet ou hotspot.
J'ai donc cette fonction dans un script :
Code:
bool DefaultMouseBehavior = true;

function CursorAspect()  //Change MouseMode in fonctions of underlying object
{
  if (DefaultMouseBehavior) { //Just a bool to deactivate this during MiniGame
    int x = mouse.x;
    int y = mouse.y;
    if (player.ActiveInventory == null) {
      if (GetLocationType(x, y) == eLocationNothing) {
        if (mouse.Mode != eModeWalkto)
          mouse.Mode = eModeWalkto; // WalkTo mode if nothing under mouse
      }
      else if (GetLocationType(x, y) == eLocationHotspot) {
        Hotspot* OnMouseHotspot = Hotspot.GetAtScreenXY(x, y);
        if (!OnMouseHotspot.GetProperty("ChangeRoomOnClick")) { //A custom properties to trigger a custom MouseMode ChangeRoom
          if (mouse.Mode != eModeInteract) {
            mouse.Mode = eModeInteract; // Interact mode on Object
          }
        }
        else {
          if (mouse.Mode != eModeChangeRoo) {
            mouse.Mode = eModeChangeRoo; //My custom MouseMode ChangeRoom
          }
        }
      }
      else if (GetLocationType(x, y) == eLocationObject) {
        Object* OnMouseObject = Object.GetAtScreenXY(x, y);
        if (!OnMouseObject.GetProperty("ChangeRoomOnClick")) {
          if (mouse.Mode != eModeInteract) {
            mouse.Mode = eModeInteract; // Interact mode on Object
          }
        }
        else {
          if (mouse.Mode != eModeChangeRoo) {
            mouse.Mode = eModeChangeRoo; //My custom MouseMode ChangeRoom
          }
        }
      }
      else if (GetLocationType(x,  y) == eLocationCharacter) {
        if (mouse.Mode != eModeTalkto) {
          mouse.Mode = eModeTalkto; // TalkTo mode on character
        }
      }
      if (InventoryItem.GetAtScreenXY(x, y)!= null) { //no else here
        if (mouse.Mode != eModeInteract) {
          mouse.Mode = eModeInteract; //Take inventory item
        }
      }
    }
  }
}
Que j'exécute dans mon repeatedly_execute :
Code:
function repeatedly_execute()
{
  InvGUIscrolling(); //Controls gInv display. Rien a voir avec le problème qui nous concerne ici.
  CursorAspect();
}
tout en l'ayant au préalable importé dans un en tête :
Code:
import function CursorAspect();
En conséquence, pour gérer le clic gauche, il me suffit de faire "ProcessClick(mouse.x, mouse.y, mouse.Mode);", modulo le fait que si on clic gauche sur rien avec un InvItem, on l’enlève. Le clic droit sert à regarder ou à désactiver l'InvItem.
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) {
    if((player.ActiveInventory != null) && (GetLocationType(mouse.x, mouse.y) == eLocationNothing)){
      player.ActiveInventory = null; //left click on nothing with InvItem looses InvItem.
    } else {
      ProcessClick(mouse.x, mouse.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(mouse.x, mouse.y, eModeLookat); //Look at things with right click
    }
  }
}
J'ai vérifié chez moi, normalement ce code est à peu près copié-collable à condition de bien créer le mode eModeChangeRoo(m) (le m ne rentre pas, limite de caractère) et la Custom Property associée.
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) 1368092500-changeroom
Dans l'état, ce code comporte quelques limites dont il faut être conscient, mais qui sont corrigeables. Si par facilité, on décide de créer un objet en tant que character pour profiter de plus de fonctions de script, le survol de cet objet déclenchera le mode Talkto. Une solution pourrait être de passer par une autre Custom Propertiy. De même, si un objet est purement esthétique il déclenchera le changement de curseur. Je ne suis pas fan de la solution IsInteractionAvailable, je préfère là encore une custom property.
Bon courage !

_________________
Mon petit DevBlog


Dernière édition par Billbis le Jeu 9 Mai 2013 - 10:50, édité 1 fois
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyJeu 9 Mai 2013 - 10:35

Billbis a écrit:
J'ai vérifié chez moi, normalement ce code est à peu près copié-collable à condition de bien créer le mode eModeChangeRoo(m) (le m ne rentre pas, limite de caractère) et la Custom Property associée.
Si je ne m'abuse, il faut aussi faire quelque chose pour la variable booléenne DefaultMouseBehavior, dans l'idéal enlever la condition dessus.

Billbis a écrit:
Je ne suis pas fan de la solution IsInteractionAvailable, je préfère là encore une custom property.
Bon courage !
Je comprends ta réticence à utiliser cette méthode dans ton module, mais en l'occurrence elle me paraît tout à fait adaptée : on scrute ce qui se trouve sous le curseur à l'écran pour l'interaction qui serait déclenchée lors d'un clic à cet endroit. Utiliser IsInteractionAvailable est donc parfaitement adapté, puisque comme le dit l'aide à son propos
Aide AGS fr a écrit:
Cette fonction est très similaire à ProcessClick, excepté qu'au lieu de traiter des interactions elles-mêmes, elle retourne simplement 1 si quelque chose se produisait, ou 0 si unhandled_event était appelée.
Donc utiliser IsInteractionAvailable pour déterminer le mode de curseur à utiliser avec ProcessClick me semble couler de source.

_________________
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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Billbis


Nombre de messages : 1346

Date d'inscription : 10/05/2012


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyJeu 9 Mai 2013 - 10:48

Kitai a écrit:
J'ai vérifié chez moi, normalement ce code est à peu près copié-collable à condition de bien créer le mode eModeChangeRoo(m) (le m ne rentre pas, limite de caractère) et la Custom Property associée.
Si je ne m'abuse, il faut aussi faire quelque chose pour la variable booléenne DefaultMouseBehavior, dans l'idéal enlever la condition dessus.
Ha oui, tout à fait. Je m'en vais éditer mon post. (C'est fait)
Kitai a écrit:
Je comprends ta réticence à utiliser cette méthode dans ton module, mais en l'occurrence elle me paraît tout à fait adaptée : on scrute ce qui se trouve sous le curseur à l'écran pour l'interaction qui serait déclenchée lors d'un clic à cet endroit.
Oui, tu as raison là aussi. ^^
Merci pour ces conseils avisés.

_________________
Mon petit DevBlog


Dernière édition par Billbis le Jeu 9 Mai 2013 - 15:28, édité 1 fois
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
XZS
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
XZS


Nombre de messages : 66

Age : 43

Localisation : A porté de fusil de Paris

Date d'inscription : 24/04/2013


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyJeu 9 Mai 2013 - 13:49

Salut les gens,

alors j'suis toujours autant épaté par votre aisance à tous avec le script, moi j'suis un peu à la rue coté logique de "codeur".
Vos approches sont vachement intéressantes, mais elles dépassent un peu mon level actuel de script ! clin d'oeil

Du coup, j'ai fait le faible et j'ai récup' un code plus ou moins déjà fait, que j'ai adapté un peu à mes besoins :

Code:
function on_mouse_click(MouseButton button) {

  if (button == eMouseLeft) {
    ProcessClick(mouse.x,mouse.y,eModeWalkto);
  }
  else if (button == eMouseRight) {
    ProcessClick(mouse.x,mouse.y,eModeInteract);
  }
  if (IsGamePaused() == 1) {
  }
 
  else if (button == eMouseLeft)  // Left click
  {
    if(GetLocationType(mouse.x, mouse.y) == eLocationNothing) // Si rien à cliquer, marche.
    {
      ProcessClick(mouse.x, mouse.y, eModeWalkto);
    }
    else
    {
      if(mouse.Mode == eModeUseinv)
      {
        ProcessClick(mouse.x, mouse.y, eModeUseinv);  // On passe en mode utilise inventaire.
      }
      else
      {
        ProcessClick(mouse.x,mouse.y, eModeInteract); // Interagit avec object/char/hotspot
      }
    }
  }
  else if (button == eMouseRight) // Clic droit, donc mode regarde ou annule l'utilisation d'inventaire
  {
    if(mouse.Mode == eModeUseinv)
    {
      mouse.Mode = eModeInteract;
    }
    else
    {
      ProcessClick(mouse.x,mouse.y, eModeLookat);
    }
  }

Clic gauche : Marcher et Interagir avec un objet de l'inventaire.
Clic droit : regarder/interagir (parler, ...).

Après, y'a des contraintes : si on veut marcher sur un endroit où un hotspot est par dessus la walkable area, ca va passer en mode "interagir". Faut que je modif' le code aussi pour qu'on utilise l'inventaire avec le clic droit, parce que c'est pas très naturel de devoir utiliser le clic gauche, qui sert ne qu'à se déplacer normalement.

Maintenant, j'vais tenter un p'tit mélange de ça avec le code de Billbis pour que le curseur change d'apparence selon ce qui est survolé.


_________________
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) IXA3RW9hzzL82
Revenir en haut Aller en bas
https://www.youtube.com/LBQ3TS
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyJeu 9 Mai 2013 - 16:16

XZS a écrit:
Après, y'a des contraintes : si on veut marcher sur un endroit où un hotspot est par dessus la walkable area, ca va passer en mode "interagir".
À vrai dire avec le code que tu as donné, je soupçonne que ça fera les deux : marcher jusqu'au hotspot et aussi déclencher l'interaction.

En effet, le code que tu as donné vérifie deux fois le bouton de clic : la première fois tu dis "si c'est le bouton gauche, on marche, si c'est le bouton droit, on interagit" et plus loin tu dis "si le jeu n'est pas en pause et si c'est le bouton gauche, on marche si on ne survole rien et on utilise l'objet d'inventaire/interagit si on survole quelque chose, si c'est le bouton droit, on passe en mode interagir/on regarde".
Donc si tu cliques gauches sur un hotspot, la première condition déclenchera la marche, la deuxième condition déclenchera l'interaction.

Je pense que tu devrais simplement te passer du premier couple "if"/"else if" concernant les boutons : ne garde ton code qu'à partir du "if isgamepaused".
À part ça, note bien qu'à aucun moment tu n'enlèves l'objet d'inventaire de la main du joueur, ce qui n'est pas l'idéal : tu te contentes de passer le curseur en mode interaction. Je serais toi, je rajouterais au moins player.ActiveInventory = null; sous 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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
XZS
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
XZS


Nombre de messages : 66

Age : 43

Localisation : A porté de fusil de Paris

Date d'inscription : 24/04/2013


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyJeu 9 Mai 2013 - 17:41

Effectivement, Kitai, le début "if (button == eMouseLeft)..." venait d'un ancien morceau de code. sourire
Après tes conseils, je me retrouve avec un mode :
-clic gauche : marcher/interagir/utiliser objet inventaire (si en cours d'utilisation).
-clic droit : annule le mode "utiliser objet inventaire".

Je sais que c'était pas exactement le résultat attendu après vos propositions à tous, mais finalement c'est pas si mal.
Interface à 1 clic, quoi grand sourire

Sauf que virer l'objet en cours avec le clic droit ça fait un peu bizarre au début, mais encore une fois c'est pas siii mal (ça évite, par exemple que, si on a cliqué au mauvais endroit avec l'objet d'inventaire, on est pas obligé de retourner dans l'inventaire pour le re-sélectionner).

_________________
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) IXA3RW9hzzL82
Revenir en haut Aller en bas
https://www.youtube.com/LBQ3TS
XZS
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
XZS


Nombre de messages : 66

Age : 43

Localisation : A porté de fusil de Paris

Date d'inscription : 24/04/2013


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyMer 15 Mai 2013 - 18:19

Je préfère poser trop de questions peut-être évidentes pour certains d'entre vous, parce que ça l'est pas encore vraiment pour moi sourire
Je cite le post de Billbis (en tronquant des passages, afin d'alléger mon post) qui est complet mais pas trop clair pour mon petit niveau en code. Merci d'avance !

Billbis a écrit:
J'ai donc cette fonction dans un script :
Code:
bool DefaultMouseBehavior = true;
function CursorAspect()  //Change MouseMode in fonctions of underlying object
{
  if (DefaultMouseBehavior) { //Just a bool to deactivate this during MiniGame
[...]
      }
      if (InventoryItem.GetAtScreenXY(x, y)!= null) { //no else here
        if (mouse.Mode != eModeInteract) {
[...]
 
Ca je le met dans un nouveau script, que j'appel "MouseMode.asc" par exemple ?



Citation :

Que j'exécute dans mon repeatedly_execute :
Code:
function repeatedly_execute()
{
  InvGUIscrolling(); //Controls gInv display. Rien a voir avec le problème qui nous concerne ici.
  CursorAspect();
}
Il faudrait que je le rentre où, ce code ? Pas dans chaque room, j'imagine ?



Citation :

tout en l'ayant au préalable importé dans un en tête :
Code:
import function CursorAspect();
Bon, ça j'imagine que ça irait dans le "MouseMode.ash", non ?



Citation :
En conséquence, pour gérer le clic gauche, il me suffit de faire "ProcessClick(mouse.x, mouse.y, mouse.Mode);",[...]

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)
 [...]

Tout ça va à la place de mon code déjà en place pour le "function on_mouse_click(MouseButton button)" du "GlobalScript.asc", c'est ça ?

Citation :
normalement ce code est à peu près copié-collable à condition de bien créer le mode eModeChangeRoo(m)
Pas con le "ChangeRoom", a priori j'en aurai pas besoin, mais sait-on jamais !

_________________
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) IXA3RW9hzzL82
Revenir en haut Aller en bas
https://www.youtube.com/LBQ3TS
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Billbis


Nombre de messages : 1346

Date d'inscription : 10/05/2012


Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) EmptyMer 15 Mai 2013 - 19:05

XZS a écrit:
Ca je le met dans un nouveau script, que j'appel "MouseMode.asc" par exemple ?
Oui.

XZS a écrit:
Il faudrait que je le rentre où, ce code ? Pas dans chaque room, j'imagine ?
Dans le repeatedly_execute() du GlobalScript.asc. Une seule fois, donc.

XZS a écrit:
Bon, ça j'imagine que ça irait dans le "MouseMode.ash", non ?
Oui.

XZS a écrit:
Tout ça va à la place de mon code déjà en place pour le "function on_mouse_click(MouseButton button)" du "GlobalScript.asc", c'est ça ?
Oui.

Monsieur XZS, je vous attribue donc la note honorable de 15/20.
grand sourire

XZS a écrit:
Je préfère poser trop de questions peut-être évidentes pour certains d'entre vous
Ne t'inquiète pas, ce forum est en grande partie fait pour poser des questions sur AGS ! En plus, comme tu fais l'effort de comprendre ce qu'on explique, c'est un vrai plaisir de répondre !

Juste pour préciser un peu les chose, on est pas du tout obligé de passer par une fonction, on peut tout faire dans le GlobalScript.asc comme des sauvages.

Code:
function repeatedly_execute()
{
  if (DefaultMouseBehavior) { //Just a bool to deactivate this during MiniGame
    int x = mouse.x;
    int y = mouse.y;
    if (player.ActiveInventory == null) {
      if (GetLocationType(x, y) == eLocationNothing) {
        if (mouse.Mode != eModeWalkto)
          mouse.Mode = eModeWalkto; // WalkTo mode if nothing under mouse
      }
      else if (GetLocationType(x, y) == eLocationHotspot) {
        Hotspot* OnMouseHotspot = Hotspot.GetAtScreenXY(x, y);
        if (!OnMouseHotspot.GetProperty("ChangeRoomOnClick")) { //A custom properties to trigger a custom MouseMode ChangeRoom
          if (mouse.Mode != eModeInteract) {
            mouse.Mode = eModeInteract; // Interact mode on Object
          }
        }
        else {
          if (mouse.Mode != eModeChangeRoo) {
            mouse.Mode = eModeChangeRoo; //My custom MouseMode ChangeRoom
          }
        }
      }
      else if (GetLocationType(x, y) == eLocationObject) {
        Object* OnMouseObject = Object.GetAtScreenXY(x, y);
        if (!OnMouseObject.GetProperty("ChangeRoomOnClick")) {
          if (mouse.Mode != eModeInteract) {
            mouse.Mode = eModeInteract; // Interact mode on Object
          }
        }
        else {
          if (mouse.Mode != eModeChangeRoo) {
            mouse.Mode = eModeChangeRoo; //My custom MouseMode ChangeRoom
          }
        }
      }
      else if (GetLocationType(x,  y) == eLocationCharacter) {
        if (mouse.Mode != eModeTalkto) {
          mouse.Mode = eModeTalkto; // TalkTo mode on character
        }
      }
      if (InventoryItem.GetAtScreenXY(x, y)!= 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
{
  if (IsGamePaused() == 1) {// Game is paused, so do nothing (ie. don't allow mouse click)
  }
  else if (button == eMouseLeft) {
    if((player.ActiveInventory != null) && (GetLocationType(mouse.x, mouse.y) == eLocationNothing)){
      player.ActiveInventory = null; //left click on nothing with InvItem looses InvItem.
    } else {
      ProcessClick(mouse.x, mouse.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(mouse.x, mouse.y, eModeLookat); //Look at things with right click
    }
  }
}

EDIT: J'arrive pas à faire partir les vilains " " de mon code sur le forum. pleure

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
Contenu sponsorisé





Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty
MessageSujet: Re: Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)   Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !) Empty

Revenir en haut Aller en bas
 
Last Night in Gretz WIP - (UPDATE 17 Mai : 2e démo dispo !)
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Chatterton à la recherche du bon méchant... DEMO DISPO P29!!
» A Cat's Night
» [Démo V0.1] Raging Torack
» Command and conquer premier du nom dispo en libre chargement
» L'ile d'Ankou [DEMO DISPONIBLE]

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: LES JEUX :: Les jeux en préparation-
Sauter vers: