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

Partagez | 
 

 [résolu] Aide pour créer un petit puzzle par substitution d'images.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2
AuteurMessage
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Jeu 20 Nov 2014 - 21:09

Remplace la ligne par
Code:
if (activeItem) player.LoseInventory(activeItem);
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Jeu 20 Nov 2014 - 22:08

Le jeu se lance, mais dès que je clique, mon curseur disparait et rien d'autre perplexe
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1275

Date d'inscription : 10/05/2012


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Jeu 20 Nov 2014 - 22:20

EDIT : as tu essayé d'inverser les 0 et les 1 dans le SetGameOption du room_load ?

Sinon, essayes en rajoutant un mouse.EnableMode(eModeUseinv);

Code:
       function echangeObjets() {
            int x = mouse.x;
            int y = mouse.y;
            
            if (GetLocationType(x, y) != eLocationObject) return; // J'ai un peu changé le code ici, étant donné que
            Object* objetsurvole = Object.GetAtScreenXY(x, y); // la fonction n'a d'effet que si on clique sur un objet
            
            int tempSprite;
            InventoryItem *activeItem = player.ActiveInventory;
            if (activeItem != null) {
                tempSprite = activeItem.CursorGraphic;
            } else {
                tempSprite = S_VIDE; //Remplace par le numéro du spite transparent
            }
            
            player.ActiveInventory = null;
            player.LoseInventory(activeItem);
            
            if (objetsurvole.Graphic == S_UN) {
                player.AddInventory(iUn);
                player.ActiveInventory = iUn;
            } else if (objetsurvole.Graphic == S_DEUX) {
                player.AddInventory(iDeux); // Comme ce code.
                player.ActiveInventory = iDeux;
            } else if (objetsurvole.Graphic == S_TROIS) {
                player.AddInventory(iTrois);
                player.ActiveInventory = iTrois;
            } // si object.Graphic == S_VIDE, on ne fait rien
            
            mouse.EnableMode(eModeUseinv); // <- ici je pense
            objetsurvole.Graphic = tempSprite;
        }
        
        function verifieSiSucces() {
            if (oUn.Grapphic == iUn && oDeux.Graphic == iDeux && oTrois.Graphic == iTrois) { // condition de victoire, doit être différent de la disposition d'origine, je suppose
                aMonJingleDeVictoire.Play(eBlock,  eOnce);
                monBoolGlobalDePuzzleReussit = true;
                player.ChangeRoom(WHATEVER);
            }
        }

Si tu ne t'en sors pas, j’essaierai de le faire en vrai ce week end dans un template de room. Tu utilise quel template de jeu déjà ?

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


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Jeu 20 Nov 2014 - 22:27

chefgeorges a écrit:
Le jeu se lance, mais dès que je clique, mon curseur disparait et rien d'autre perplexe
Dès que tu cliques n'importe où ou bien dès que tu cliques sur un des objets ?

_________________
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
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Ven 21 Nov 2014 - 17:40

Kitai a écrit:
chefgeorges a écrit:
Le jeu se lance, mais dès que je clique, mon curseur disparait et rien d'autre perplexe
Dès que tu cliques n'importe où ou bien dès que tu cliques sur un des objets ?
Dès que je cliques sur un objet avec le curseur Interagir.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Sam 22 Nov 2014 - 2:13

As-tu bien associé des images à tes objets d'inventaire iUn, iDeux et iTrois ?

_________________
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
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Sam 22 Nov 2014 - 15:54

Non... rougit
Du coup j'ai mis une "image curseur" pour chaque objet sourire
Du coup : je clique sur un objet, le curseur avec le sprite de l'objet apparait, le sprite de l'objet se "vide" et... je peux plus rien faire d'autre perplexe

En fait je clique, je clique... plus rien ne se passe. Pas moyen de "déposer" l'image sur un autre objet.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1275

Date d'inscription : 10/05/2012


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Sam 22 Nov 2014 - 16:47

Étrange... peut être en utilisant l'évènement _UseInv au lieu de _AnyClick ?
En tout cas, on avance ! sourire
On y est presque, courage !

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


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Sam 22 Nov 2014 - 22:28

Ouais, sinon y aller un peu plus brutalement et tout gérer directement dans la fonction on_click.

_________________
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
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Jeu 27 Nov 2014 - 14:23

VIVANT ! IL EST VIVAAANT !! lol


Oui, ça fonctionne... bon il y a un p'ti "mais" quant même, mais le script est OK sourire
En fait je m'évertuais à vouloir mettre le fonction sur le mode Utiliser. J'ai tout effacé est testé avec le mode Tout Clic, et là miracle grand sourire

Le petit "mais" vient du fait que ça m'embête justement que quelque soit le mode de la souris, le script se lance. Car du coup je peux pas prévoir de dialogues sur les objets et en plus ça risque de déstabiliser le joueur perplexe

Mais bon ça fonctionne clin d\\\\'oeil
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1275

Date d'inscription : 10/05/2012


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Jeu 27 Nov 2014 - 18:02

Dans ce cas, un petit
Code:
if (mouse.Mode == eModeUseInv || mouse.Mode == eModeInteract)
judicieusement bien placé dans la fonction plus haut, ça devrai faire l'affaire.

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nothingaboutthedog.blogspot.fr/
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Jeu 27 Nov 2014 - 18:17

Ah mais oui sourire

Testé et approuvé grand sourire ça fonctionne parfaitement ^^

Merci beaucoup, j'ai pas mal appris (même si j'avoue ne pas encore tout maitriser du code de cette fonction langue ).

Je vous laisserai découvrir ce puzzle et surtout ce qu'il déclenchera dans l'Ep.II clin d\\\\'oeil
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Sam 27 Déc 2014 - 13:31

En pleine phase de test, j'ai découvert un petit bug avec ce script qui malheureusement bloque complètement la progression dans le jeu perplexe Je m'explique...

J'ai choisi de faire en sorte de sélectionner les outils en cliquant aussi avec le clic droit (rotation des outils - SelectNextMode()). Quand je clique sur un objet de l'inventaire, mais que je ne l'utilise pas, celui-ci reste dans la "roue" des outils (je clic-droit et après les outils je le vois réapparaitre). Ce n'était jusqu'ici pas très génant.

Sauf que si je clique sur un objet de l'inventaire, puis avec l'outil Utiliser sur un des cadres de ce script, l'objet de l'inventaire se colle sur le cadre et disparait même de mon inventaire !

Code:
if (IsGamePaused() == 1) // Game is paused, so do nothing (ie. don't allow mouse click)
  {
  }
    else if (button == eMouseLeft)
    {
    ProcessClick(mouse.x,mouse.y, mouse.Mode);
  
      if (mouse.Mode == eModeWalkto)
      {
      player.Walk(mouse.x+GetViewportX(), player.y, eNoBlock, eWalkableAreas);
      }
      if ((player.Room == 4) || (player.Room == 38))
      {
      player.Walk(mouse.x+GetViewportX(), mouse.y, eNoBlock, eWalkableAreas);
      }
    }
      else // right-click, so cycle cursor
      {  
      mouse.SelectNextMode();
      }
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Dim 28 Déc 2014 - 13:37

Pour pallier au problème, si le mini-jeu se passe dans une pièce réservée exclusivement à ça, on peut enrichir les fonctions d'entrée et sortie de pièce que Billbis propose avec une mise en mémoire et une restauration de l'objet d'inventaire actif :
Code:
InventoryItem* Inventaire_bak;
function room_Load()
{
    SetGameOption (FIXEDINVCURSOR , 0) // c'est peut-être 1, l'aide est pas super claire
    Inventaire_bak = player.ActiveInventory;
}

function room_Leave()
{
    SetGameOption (FIXEDINVCURSOR , 1) // c'est peut-être 0, l'aide est pas super claire
    player.ActiveInventory = Inventaire_bak;
}

_________________
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
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Dim 28 Déc 2014 - 19:32

Non, malheureusement ça ne fonctionne pas. Même en inversant 0 et 1.
(Et j'ai corrigé FIXEINVCURSOR en OPT_FIXEINVCURSOR).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Dim 28 Déc 2014 - 22:11

Excuse-moi, j'ai oublié un petit player.ActiveInventory = null; :
Code:
InventoryItem* Inventaire_bak;
function room_Load()
{
    SetGameOption (OPT_FIXEDINVCURSOR , 0) // c'est peut-être 1, l'aide est pas super claire
    Inventaire_bak = player.ActiveInventory;
    player.ActiveInventory = null;
}

function room_Leave()
{
    SetGameOption (OPT_FIXEDINVCURSOR , 1) // c'est peut-être 0, l'aide est pas super claire
    player.ActiveInventory = Inventaire_bak;
}
Normalement ce code devrait s'assurer que tu n'as aucun objet d'inventaire "en main" au début du puzzle, et donc prévenir la perte de cet objet lorsque tu cliques sur une case. En effet le code qu'a donné Billbis dans la page précédente a pour effet lors d'un clic sur une case de supprimer de l'inventaire du joueur l'objet qu'il tient dans la main à ce moment-là (qui devrait normalement toujours correspondre à une des cases, justement).

_________________
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
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Lun 29 Déc 2014 - 10:07

Alors, oui ça marche, mais dans un seul cas : si j'avais déjà un objet en main avant d'entrer dans la pièce.

Mais si, une fois dans la pièce, je prends en main un objet, puis clique avec l'outil Utiliser sur un cadre, le résultat est le même. Idem si je clique avec l'objet d'inventaire sur un cadre.

Est-ce que la solution ne serait pas aussi d'ajouter un if() au tout début de function echangeObjets() du type : si objet sélectionné différent de objetsurvole.Graphic = (les Id des cadres), alors Inventaire_bak = player.ActiveInventory;  player.ActiveInventory = null; ?

EDIT : En testant le jeu, je pense que cette façon de faire va me causer d'autres problèmes. En effet, après avoir changé de personnage et être passé dans cette pièce, en cliquant sur un objet de l'inventaire celui-ci a pris l’apparence d'un autre objet appartenant à un autre personnage perplexe mais c'était bien le bon objet (car celui-ci a fonctionné).
Je continue les tests pour vérifier ça...

EDIT²: en fait tout mes objets prennent l'apparence du même objet une fois activé. J'essaie d'inversé le 0 et le 1 pour voir...

EDIT 3: Idem ! Je crois que je vais abandonner SetGameOption, ça créé bien trop de soucis triste
J'ai la solution de bloquer l'inventaire, en l'expliquant "rigolotement" ^^ histoire de justifier la chose clin d\\\\'oeil
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Mar 30 Déc 2014 - 12:37

En fait je ne comprends pas trop pourquoi le joueur devrait encore avoir accès à son inventaire durant cette phase de puzzle, mais si c'est le cas j'imagine que la solution de passer par les objets d'inventaire pour gérer le tout n'est pas idéal.
Une solution alternative serait de définir un mode de curseur spécial pour la souris, et d'utiliser ChangeModeGraphic pour lui donner l'apparence de l'objet sélectionné dans le puzzle. Si je reprends l'idée du code de Billbis, ça donnerait quelque chose comme ça :
Code:
function echangeObjets() {

    if (mouse.Mode != eModeSpecial) return; // On vérifie que le mode de la souris est bien le mode dédié (remplace "Special" par ce que tu auras défini)

    int x = mouse.x;
    int y = mouse.y;
   
    if (GetLocationType(x, y) == eLocationObject) {
            Object* objetsurvole = Object.GetAtScreenXY(x, y);
    }

    int tempSprite = mouse.GetModeGraphic(eModeSpecial);

    if (objetsurvole.Graphic == S_UN) mouse.ChangeModeGraphic(eModeSpecial, S_UN);
    } else if (objetsurvole.Graphic == S_DEUX) mouse.ChangeModeGraphic(eModeSpecial, S_DEUX);
    else if (objetsurvole.Graphic == S_TROIS) mouse.ChangeModeGraphic(eModeSpecial, S_TROIS);
       
    objetsurvole.Graphic = tempSprite;
}

function verifieSiSucces() {
    if (oUn.Graphic == S_DEUX && oDeux.Graphic == S_TROIS && oTrois.Graphic == S_UN) { // condition de victoire, doit être différent de la disposition d'origine, je suppose
        aMonJingleDeVictoire.Play(eBlock,  eOnce);
        monBoolGlobalDePuzzleReussit = true;
        player.ChangeRoom(WHATEVER);
    }
}

On s'assure à l'entrée de la pièce de rendre disponible le mode spécial, et que son graphic est "vide" :
Code:
function room_Load()
{
  mouse.ChangeModeGraphic(eModeSpecial, S_VIDE);
  mouse.EnableMode(eModeSpecial);
  mouse.Mode = eModeSpecial;
}

function room_Leave()
{
  mouse.DisableMode(eModeSpecial);
}

Et la fonction de clic qui va bien :
Code:
function oMesObjets_AnyClick()
{
    echangeObjets();
    verifieSiSucces();
}

_________________
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
Contenu sponsorisé




MessageSujet: Re: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Aujourd'hui à 8:03

Revenir en haut Aller en bas
 
[résolu] Aide pour créer un petit puzzle par substitution d'images.
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2
 Sujets similaires
-
» [Résolu] Aide pour le trophée 25 victoires versus en ligne
» [Résolu] AIDE POUR TIGREX
» [Résolu] Aide pour le 100%
» [Résolu] aide pour arme en KIRIN
» [Résolu] Besoin d'aide pour le plesioth rg 7 avec l'arc

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: