Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -20%
Drone Dji DJI Mini 4K (EU)
Voir le deal
239 €

 

 [Module] ShowInteractiveAreas

Aller en bas 
3 participants
AuteurMessage
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue



Nombre de messages : 1346

Date d'inscription : 10/05/2012


[Module] ShowInteractiveAreas - Page 2 Empty
MessageSujet: Re: [Module] ShowInteractiveAreas   [Module] ShowInteractiveAreas - Page 2 EmptyDim 25 Nov 2012 - 15:06

IsInteractionAvailable n'est que moyennement pratique, vu qu'il faut spécifier le mode d'interaction en question... donc il faut screener tous les modes pour toutes les zones interactives identifiés, car si une seule interaction est possible ça vaut le coup de l'indiquer en zone interactive. J'ai peur que ça commence à faire lourd.
Kitai a écrit:
un hotspot peut être utilisé de moult façons, sans pour autant que des interactions y soient associées, une fois qu'on met les mains dans le cambouis du script
Je ne doute pas que de telles personnes sauront tout à fait adapter mon module à leur usage. clin d'oeil

A ma grande surprise, et malgré ce blabla incompréhensible du manuel d'AGS :
Code:
cJ.Say("Game is running at: %d x %d, %d-bit colour", System.ScreenWidth, System.ScreenHeight, System.ColorDepth);
Renvoi un très jolie :
J. a écrit:
Game is running at: 1024 x 768, 32-bit colour
Ce n'est pas la première fois que l'aide d'AGS me semble un peu bancale...

Kitai a écrit:
N'oublie pas que le joueur peut se déplacer dans la pièce et que le décalage à l'écran est donc variable.
En l'état il me semble que ton code ne scanne que l'écran

Bien vu ! Soit je bidouille un truc avec le viewport, soit j’abandonne. Je crois que j'abandonne, car ça marche vraiment pas mal, là.

Kitai a écrit:
Si vraiment tu veux garder en mémoire des données, je réitère ma suggestion de placer la détection dans la fonction on_event.
A ma grande honte, je n'ai pas réussit à coder un truc potable pour que le GetAtScreenXY fouille toute la pièce et pas juste l'écran. ^^ J'ai des progrès à faire, encore.


Dernière édition par Billbis le Lun 26 Nov 2012 - 16:37, édité 2 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



Nombre de messages : 2907

Date d'inscription : 01/08/2006


[Module] ShowInteractiveAreas - Page 2 Empty
MessageSujet: Re: [Module] ShowInteractiveAreas   [Module] ShowInteractiveAreas - Page 2 EmptyDim 25 Nov 2012 - 16:03

Billbis a écrit:
IsInteractionAvailable n'est que moyennement pratique, vu qu'il faut spécifier le mode d'interaction en question... donc il faut screener tous les modes pour toutes les zones interactives identifiés, car si une seule interaction est possible ça vaut le coup de l'indiquer en zone interactive. J'ai peur que ça commence à faire lourd.
Je ne pense pas que ça alourdisse tant que ça l'exécution, d'autant moins si tu arrêtes d'explorer les modes dès que la fonction retourne 1 pour un mode (ce qui devrait être le cas pour la plupart des éléments interactifs).

Billbis a écrit:
A ma grande surprise, et malgré ce blabla incompréhensible du manuel d'AGS :
Code:
cJ.Say("Game is running at: %d x %d, %d-bit colour", System.ScreenWidth, System.ScreenHeight, System.ColorDepth);
Renvoi un très jolie :
J. a écrit:
Game is running at: 1024 x 768d, 32-bit colour
Ce n'est pas la première fois que l'aide d'AGS me semble un peu bancale...
Hm, je pense simplement que l'aide n'est pas à jour. Par "largeur/hauteur véritable", je pense que CJ voulait dire "pas en coordonnées de la pièce (basse résolution)".
C'est bon à savoir en tout cas

Billbis a écrit:
Bien vu ! Soit je bidouille un truc avec le viewport, soit j’abandonne. Je crois que j'abandonne, car ça marche vraiment pas mal, là.
Billbis a écrit:
A ma grande honte, je n'ai pas réussit à coder un truc potable pour que le GetAtScreenXY fouille toute la pièce et pas juste l'écran. ^^ J'ai des progrès à faire, encore.
Il me semble que ce n'est pas si compliqué que ça : plutôt que d'avoir un random sur ScreenWidth et ScreenHeight, tu en fais un d'après les dimensions de la surface (en résolution réelle) de fond de la pièce. Ensuite tu soustraies GetViewPortX ou GetViewPortY quand tu passes la coordonnée dans GetAtScreenXY.
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


[Module] ShowInteractiveAreas - Page 2 Empty
MessageSujet: Re: [Module] ShowInteractiveAreas   [Module] ShowInteractiveAreas - Page 2 EmptyMer 28 Nov 2012 - 18:18

Kitai a écrit:
Il me semble que ce n'est pas si compliqué que ça : plutôt que d'avoir un random sur ScreenWidth et ScreenHeight, tu en fais un d'après les dimensions de la surface (en résolution réelle) de fond de la pièce. Ensuite tu soustraies GetViewPortX ou GetViewPortY quand tu passes la coordonnée dans GetAtScreenXY.
Oui, c'était pas très compliqué. La prochaine version gardera en mémoire les hotspots précédemment trouvés tant que le joueur ne quitte pas la pièce. Donc, une fois qu'il aura trouvé un petit hotspot, l’algorithme l'affichera correctement toute les fois suivantes. Je vous ferai les calculs un peu plus tard, mais contrairement à avant, un (tout) petit hotspot aura de plus en plus de chance d'être détectés a chaque pression sur la barre d'espace.
La détection continu a ne se faire que sur l'écran, et pas sur toute la room. Plus j'y pense, moins j'ai envie de faire une détection sur toute une room, que ce soit dans un on_event ou à chaque on_KeyPresse, car la surface des rooms peu facilement varier de 1 à 10 ou 20. Donc en fonction des rooms, la précision de la détection où le temps de calculs ne seront pas les mêmes, ce qui m’embête un peu.
confus

Kitai a écrit:
Billbis a écrit:

IsInteractionAvailable n'est que moyennement pratique, vu qu'il faut spécifier le mode d'interaction en question... donc il faut screener tous les modes pour toutes les zones interactives identifiés, car si une seule interaction est possible ça vaut le coup de l'indiquer en zone interactive. J'ai peur que ça commence à faire lourd.
Je ne pense pas que ça alourdisse tant que ça l'exécution, d'autant moins si tu arrêtes d'explorer les modes dès que la fonction retourne 1 pour un mode (ce qui devrait être le cas pour la plupart des éléments interactifs).
J'ai codé une petite fonction comme tu me l'as suggéré :
Code:
function siaIsAnInteractionAvailable (int x,  int y) {
  if (IsInteractionAvailable(x, y, eModeInteract) != 0)
    return true;
  else if (IsInteractionAvailable(x, y, eModeLookat) != 0)
    return true;
  else if (IsInteractionAvailable(x, y, eModePickup) != 0)
    return true;
  else if (IsInteractionAvailable(x, y, eModeTalkto) != 0)
    return true;
  else if (IsInteractionAvailable(x, y, eModeUseinv) != 0)
    return true;
  else
    return false;
}

Puis rajouté un petit :
Code:
if (siaIsAnInteractionAvailable(siaObjectX-GetViewportX(), siaObjectY-GetViewportY()))
au bon endroit, et ça fonctionne bien.
La preuve :
[Module] ShowInteractiveAreas - Page 2 1354125023-bugisinterarea1
Le magnifique Trou Noir, qui est un objet sans aucune interaction, n'est pas affiché comme interactif. En revanche, la barque, qui possède des interactions, est bien identifiée comme zone interactive (bon, vous me faite confiance, elle est hors champ).
Par contre, ça fonctionne un peu trop comme attendu. Si Harris l'interactif passe devant le Trou Noir non interactif :
[Module] ShowInteractiveAreas - Page 2 1354125027-bugisinterarea2
Et bien ne voilà t'il pas que le Trou Noir est affiché comme interactif ! Logique, vu mon script...
Du coup, cette vérification introduit quand même plus de problèmes qu'elle n'en résout. Il y a sans doute moyen de coder une usine à gaz pour faire tourner tout ça correctement, mais ça me tente moyen.
Une custom propertie (j' coeur les custom properties, elles sont so orienté objet) qui définie si un objet / personnage / hotspot doit ne pas être affiché me semble plus pratique.

Sinon, je renouvelle mon appel aux testeurs, quelqu'un a t-il essayé ce module sur son projet ? Fonctionne t-il comme attendu ? Depuis la beta 0.2 il s'installe et se désinstalle en un tour de clic.

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


Nombre de messages : 1346

Date d'inscription : 10/05/2012


[Module] ShowInteractiveAreas - Page 2 Empty
MessageSujet: Re: [Module] ShowInteractiveAreas   [Module] ShowInteractiveAreas - Page 2 EmptyVen 30 Nov 2012 - 18:20

J'ai mis en ligne la nouvelle version, qui retient la position des hotspots déjà trouvés.
Pour l'occasion, j'ai passé le module en v 1.0 et je vais prochainement le poster sur le forum anglophone. Cela dit, je reste ouvert à toutes propositions d'amélioration ou d'optimistation. Et si je les refuse, n'hésitez pas à proposer votre fork.
clin d'oeil
De même, n'hésitez pas à héberger ce module sur votre serveur. sourire

_________________
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


[Module] ShowInteractiveAreas - Page 2 Empty
MessageSujet: Re: [Module] ShowInteractiveAreas   [Module] ShowInteractiveAreas - Page 2 EmptyVen 30 Nov 2012 - 19:06

Enh l'autre eh, il veut se faire héberger son module à l’œil !

Il faudra que je le teste à l'occasion, mais je ne passe pas sous Windows ces temps-ci et j'ai peu de temps libre.
Toutefois je pense que tu auras du retour de la part du forum anglophone, je pense que c'est une très bonne initiative (moi les conventions de modules m'ont chaque fois découragé à poster là-bas, alors que je pense que ces conventions sont inestimables...). Il faudrait que je me motive pour le faire un jour ou l'autre.

_________________
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


[Module] ShowInteractiveAreas - Page 2 Empty
MessageSujet: Re: [Module] ShowInteractiveAreas   [Module] ShowInteractiveAreas - Page 2 EmptyMer 20 Mar 2013 - 21:03

Nouvelle version du module. Les premiers postes ont été mise à jour en conséquence.
Avant, le module ne fonctionnait pas lorsque le joueur se déplaçait, il fallait attendre la fin du mouvement pour que la barre d'espace ait un effet.
Maintenant, tant que la barre d'espace est enfoncé, le jeu est mis en pause et du coup, le module fonctionne correctement même lors des mouvement du joueur.

Kitai a écrit:
(ça marche vraiment d'ailleurs ces propriétés ScreenWidth/ScreenHeight ? Je croyais que ça n'avait pas de rapport direct avec la résolution du jeu).

Après re-lecture du manuel est quelques testes personnels, il apparait que system.ScreenWidth() renvoie la largeur de l’écran en tenant compte des bandes noirs latérales en mode plein écran. Du coup, et même si ça fonctionnait apparemment sans problèmes, je les ai changé en system.ViewportWidth(). C'est plus propre. Donc tu avais (une fois de plus) raison.
^^

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


Nombre de messages : 1346

Date d'inscription : 10/05/2012


[Module] ShowInteractiveAreas - Page 2 Empty
MessageSujet: Re: [Module] ShowInteractiveAreas   [Module] ShowInteractiveAreas - Page 2 EmptyDim 26 Mai 2013 - 12:36

Le début de la gloire :
Mon module est maintenant crédité dans au moins un jeux AGS : A Cat's Night 2 par WarioPunk / PuNKKoMmANDO77.
cool
[Module] ShowInteractiveAreas - Page 2 Jack-deal
Hé oui, je double poste à but purement égoïste, pour me vanter et flooder comme un gros troll.
sourire

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
Shai-la


Nombre de messages : 6018

Age : 46

Localisation : Montpellier

Date d'inscription : 17/04/2006


[Module] ShowInteractiveAreas - Page 2 Empty
MessageSujet: Re: [Module] ShowInteractiveAreas   [Module] ShowInteractiveAreas - Page 2 EmptyDim 26 Mai 2013 - 17:27

Bravo ^^
Revenir en haut Aller en bas
http://marionpoinsot.fr/video
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


[Module] ShowInteractiveAreas - Page 2 Empty
MessageSujet: Re: [Module] ShowInteractiveAreas   [Module] ShowInteractiveAreas - Page 2 EmptyDim 26 Mai 2013 - 17:40

Félicitations Billbis !

Grâce à toi, la communauté francophone continue de répandre sa toile petit à petit.
Qui sait, tu sera peut-être bientôt le nouveau Monsieur OUXX ? clin d'oeil

_________________
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


[Module] ShowInteractiveAreas - Page 2 Empty
MessageSujet: Re: [Module] ShowInteractiveAreas   [Module] ShowInteractiveAreas - Page 2 EmptyJeu 4 Juil 2013 - 19:25

Petite mise à jour mineure (v 1.3). La principale modification est la non prise en compte des objets non cliquables (décoratifs) lors du dessin des curseurs. Je ne comprend pas bien pourquoi je ne l'ai pas fait dès les premières versions... mais c'est corrigé. Cette nouvelle version est rétrocompatible avec la précédente (qui elle même était rétrocompatible avec la v1.0).

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


Nombre de messages : 1346

Date d'inscription : 10/05/2012


[Module] ShowInteractiveAreas - Page 2 Empty
MessageSujet: Re: [Module] ShowInteractiveAreas   [Module] ShowInteractiveAreas - Page 2 EmptyVen 5 Juil 2013 - 19:57

Mise à jour du jour :
-v1.3 : Tant qu'a faire, les hotspots non activés (Enabled) ne sont plus affichés non plus. Et en plus j'ai fait un léger toilettage du code.
-v1.3 *Alternative Edition* : La détection automatique des coordonnées de hotspots disparait aux profits de coordonnées spécifiés manuellement par l'utilisateur, voir les premiers posts.

A vous de choisir
^^

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





[Module] ShowInteractiveAreas - Page 2 Empty
MessageSujet: Re: [Module] ShowInteractiveAreas   [Module] ShowInteractiveAreas - Page 2 Empty

Revenir en haut Aller en bas
 
[Module] ShowInteractiveAreas
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Plateau (module)
» Module Jeux de Tir
» [Module]SideViewFL - SideViewFaceLocation
» [résolu]module Savegames with screenshots de Andrew MacCormack
» Razorblade 3D 1.0, module 3D

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Modules et plugins-
Sauter vers: