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 : 1, 2  Suivant
AuteurMessage
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: [résolu] Aide pour créer un petit puzzle par substitution d'images.   Mar 4 Nov 2014 - 12:16

Bonjour,

Je voudrais créer un puzzle simple : quand je clic sur un objet, la souris prend le graphic de l'objet 1 (comme pour un objet d'inventaire), et si je clique sur l'objet 2, les graphic de l'objet 1 et de l'objet 2 sont inversés (sachant qu'il y aura plus de 2 objets)

J'ai un peu de mal à visualiser la méthode perplexe (d'autant que je voudrais créer une fonction (si c'est la bonne méthode) mais que je maitrise encore peu cela).

Merci d'avance ^^

NB: J'ai commencé comme ça pour changer le graphic du curseur :
Code:
function puzzle_cadres(int Ob, int Frame)
{
  mouse.Mode = eModeCadreto;
  mouse.ChangeModeGraphic(eModeCadreto, Frame);

}

function oCadre1_Interagir()
{
puzzle_cadres(0, 433);
}
Par contre j'ai une bizarrerie que je ne m'explique pas perplexe
La zone d'interaction sur l'objet (un rectangle vertical) ne concerne qu'une petite zone, dans le coin haut gauche ! Je ne comprends absolument pas pourquoi triste


Dernière édition par chefgeorges le Jeu 27 Nov 2014 - 18:17, édité 2 fois
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 : 2430

Date d'inscription : 01/08/2006


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

Salut chefgeorges,

Tout d'abord, note que tu as défini deux paramètres pour ta fonction puzzle_cadres mais que tu n'utilises que le second. Tu peux donc reformuler tout ça de façon à n'avoir plus qu'un seul paramètre (Frame). Mais alors ta fonction personnelle n'exécute qu'une seule commande, donc tu peux commencer à te demander s'il est vraiment pertinent de ne pas utiliser ladite commande directement.

chefgeorges a écrit:
Par contre j'ai une bizarrerie que je ne m'explique pas perplexe
La zone d'interaction sur l'objet (un rectangle vertical) ne concerne qu'une petite zone, dans le coin haut gauche ! Je ne comprends absolument pas pourquoi triste
C'est malheureusement toujours le cas avec AGS : les curseurs n'ont qu'un seul point d'interaction, placé relativement à leur image dans l'éditeur. Tu peux aussi replacer ce point grâce à la commande ChangeModeHotspot. Du coup avoir une fonction personnalisée reprend tout son sens, par exemple :

Code:
function puzzle_cadres(int frame) {
  if (Game.SpriteHeight[frame] == 0) return; // S'il n'y a pas d'image numéro FRAME, on ne fait rien
  mouse.ChangeModeGraphic(eModeCadreto, frame); // Change l'image du curseur Cadreto
  mouse.ChangeModeHotspot(eModeCadreto, Game.SpriteWidth[frame]/2, Game.SpriteHeight[frame]/2); // Place le point d'interaction au centre de la nouvelle image du curseur Cadreto
}

_________________
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.   Mar 4 Nov 2014 - 16:51

Kitai a écrit:
note que tu as défini deux paramètres pour ta fonction puzzle_cadres
Oui parce que en fait je réfléchis à utiliser un 2ème paramètre. Ce que je montre, c'est juste pour changer le graphic du curseur, mais en fait ce qui m'intéresse surtout c'est l'histoire de substitution expliquée plus haut sourire

Kitai a écrit:
les curseurs n'ont qu'un seul point d'interaction
On parlait pas de la même chose, mais j'ai trouvé sourire En fait, bien que l'image de mon objet ai été importé avec l'option "sans transparence", AGS semble considérer que les partie rose de l'image sont tout-de-même transparente sourire
Du coup changement de couleur, et hop problème résolu ^^
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.   Mar 4 Nov 2014 - 17:22

En tant des choses, j'ai une erreur de script à cette ligne :
Code:
if ((mouse.Mode == eModeCadreto)&&(object.ID == 0))
Qu'est-ce que j'écris mal dans "object.ID" ?
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.   Mar 4 Nov 2014 - 17:39

Il n'y a pas trop le droit d'écrire object.ID. Il faut écrire oMonObjet.ID pour avoir l'ID de ton objet.
Dans le cas d'une fonction, il te faut sans doute explorer le monde inconnu et périlleux des pointeurs.
Edit: il te faut peut-être : Object.GetAtScreenXY

_________________
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.   Mer 5 Nov 2014 - 12:49

Billbis a écrit:
il te faut peut-être : Object.GetAtScreenXY
C'est intéressant comme piste... Merci, je vais y réfléchir sourire

Au passage, je trouve dommage qu'AGS ait encore des soucis "d'harmonisation" de son code. Comme avec "object" qui peut s'écrire avec un "o" ou "O". Pour un novice comme moi, c'est toujours très déconcertant perplexe
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.   Mer 5 Nov 2014 - 13:00

Non rien à faire j'ai du mal...

Je voudrias coder quelque chose du genre : "quelque soit l'objet sur lequel je clique avec le curseur eModeCadreTo, l'image du curseur et de l'objet s'inverse." perplexe

EDIT 1:
Je suis proche du but je penses, notamment avec ça:
Code:
object[2].Graphic = Mouse.GetModeGraphic(eModeCadreto);

EDIT 2:
J'ai essayé d'intervertir les image avec:
Code:
mouse.ChangeModeGraphic(eModeCadreto, object[2].Graphic);
Mais il ne se passe rien triste
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.   Mer 5 Nov 2014 - 14:02

Je te fait ça ce soir. Mais que ça n’empêche pas les autres (Kitai, Atavismus, ...) de proposer leurs solutions !
sourire

_________________
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 : 2430

Date d'inscription : 01/08/2006


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

chefgeorges a écrit:
Au passage, je trouve dommage qu'AGS ait encore des soucis "d'harmonisation" de son code. Comme avec "object" qui peut s'écrire avec un "o" ou "O". Pour un novice comme moi, c'est toujours très déconcertant perplexe
AGS a plusieurs soucis d'harmonisation en effet, mais je ne dirais pas que ce dont tu parles en est vraiment un.
De façon générale dans AGS, et c'est une convention qu'on retrouve dans pas mal de langages, les noms de variables commencent par un caractère minuscule, tandis que les noms de classes commencent par un caractère majuscule. C'est important de garder ça en tête en programmation : la casse (minuscule/majuscule) importe dans quasiment tous les langages.
Ainsi, Object n'est pas un nom de variable, mais un nom de classe (même chose pour Character, Region, etc.). En conséquence ça ne s'utilise donc pas dans les contextes où on utilise des noms de variables.
Au contraire, object est un nom de variable, qui contient un tableau d'objets. De la même façon, character est un nom de variable qui contient un tableau de personnages, region est un nom de variable qui contient un tableau de régions, etc.

chefgeorges a écrit:
Je voudrias coder quelque chose du genre : "quelque soit l'objet sur lequel je clique avec le curseur eModeCadreTo, l'image du curseur et de l'objet s'inverse." perplexe
Ce que je ne comprends pas, c'est que tu veux généraliser ton code à n'importe quel objet, mais ton code fait explicitement référence à l'objet numéro 2.

Par ailleurs, remarque que l'interversion requiert (au moins) deux commandes qui s'exécutent successivement : pour éviter un effet cyclique, tu dois donc stocker l'information sur une image auparavant.

Voici un code dont tu peux t'inspirer :
Code:
Object* objetsurvole = Object.GetAtScreenXY(mouse.x, mouse.y); // 'objetsurvole' est une variable (de type Object) qui fait référence à l'objet survolé par la souris
int numerosprite = objetsurvole.Graphic; // On stocke le numéro de l'image de l'objet
objetsurvole.Graphic = mouse.GetModeGraphic(eModeCadreto); // La commande que tu avais déjà entrée toi-même
mouse.ChangeModeGraphic(eModeCadreto, numerosprite); // On change l'image du curseur avec l'image stockée auparavant
Je suis surpris qu'il ne se passe rien. Es-tu sûr que le mode de curseur de la souris est bien eModeCadreto lorsque le code s'exécute ? Es-tu sûr que le code est effectivement déclenché ? Où l'as-tu mis ?

_________________
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
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.   Mer 5 Nov 2014 - 22:12

La solution de Kitai fonctionne bien (je viens de tester). La voilà dans le contexte d'un script de room. Adapte là à ta sauce, en particulier la gestion du point d'interaction du curseur et la position du sprite de l'objet remplacé (si tout les sprites en questions font la même taille, tu auras moins de soucis).
Code:
bool mesConditions = true;

function on_mouse_click (MouseButton button)
{
    int x = mouse.x;
    int y = mouse.y;
    if (button == eMouseLeft && mesConditions) { // par exemple mouse.Mode == eModeCadreTo
        if (GetLocationType(x, y) == eLocationObject) {
            Object* objetsurvole = Object.GetAtScreenXY(x, y); // 'objetsurvole' est un pointeur (de type Object) qui fait référence à l'objet survolé par la souris
            int numerosprite = objetsurvole.Graphic; // On stocke le numéro de l'image de l'objet
            objetsurvole.Graphic = mouse.GetModeGraphic(eModeCadreto); // La commande que tu avais déjà entrée toi-même
            mouse.ChangeModeGraphic(eModeCadreto, numerosprite); // On change l'image du curseur avec l'image stockée auparavant
            mouse.ChangeModeHotspot(eModeWalkto, Game.SpriteWidth[numerosprite]/2, Game.SpriteHeight[numerosprite]/2);
            ClaimEvent(); // Suprime cette ligne si elle casse tout ton script
        }
    }
}
Bon courage. sourire

_________________
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 20 Nov 2014 - 16:51

Je reviens sur ce topic sourire

Billbis j'ai essayé ton script. J'ai remplacé eModeCadreto par eModeInteract (car je ne vois plus l'intérêt d'un curseur supplémentaire avec ton code). Il fonctionne, sauf que le premier clic échange l'image du curseur Interagir avec l'image de l'objet (là où je voudrais qu'il la duplique. Je teste quelque chose de mon côté pour ce problème sourire)
Par contre, je ne comprends pas cette ligne :
Code:
  if (button == eMouseLeft && mesConditions) { // par exemple mouse.Mode == eModeCadreTo
Ni la déclaration "bool mesConditions = true;" d'ailleurs ;p

EDIT:
ça me cause aussi un problème que la fonction agisse avec n'importe quel curseur perplexe (function on_mouse_click (MouseButton button))

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.   Jeu 20 Nov 2014 - 17:29

Bon j'ai résolu la chose, sauf que j'ai l'impression d'être parti dans une mauvaise direction dès le départ triste Je m'explique...

Voici déjà comment j'ai corrigé le code :
J'ai d'abord mis :
Code:
function oCadre1_Interagir()
{
mouse.ChangeModeGraphic(eModeCadreto, 433);
mouse.Mode = eModeCadreto;
}
Pour le 1er des 3 objets impliqués dans ce puzzle.
Puis j'ai fait :
Code:
function oCadre1_Mode8()
{
    int x = mouse.x;
    int y = mouse.y;
    if (eMouseLeft && mesConditions) { // par exemple mouse.Mode == eModeCadreTo
        if (GetLocationType(x, y) == eLocationObject) {
            Object* objetsurvole = Object.GetAtScreenXY(x, y); // 'objetsurvole' est un pointeur (de type Object) qui fait référence à l'objet survolé par la souris
            int numerosprite = objetsurvole.Graphic; // On stocke le numéro de l'image de l'objet
            objetsurvole.Graphic = mouse.GetModeGraphic(eModeCadreto); // La commande que tu avais déjà entrée toi-même
            mouse.ChangeModeGraphic(eModeCadreto, numerosprite); // On change l'image du curseur avec l'image stockée auparavant
        mouse.ChangeModeHotspot(eModeWalkto, Game.SpriteWidth[numerosprite]/2, Game.SpriteHeight[numerosprite]/2);
        }
    }
}
J'ai renouvelé cela pour les 3 objets de la pièce.

Ça fonctionne... sauf que je me suis rendu compte que je pouvais copier la même image sur les 3 objets, ce qui ruine complètement mon puzzle (même si en cliquant à nouveau avec le curseur interagir, on peut "récupérer" le puzzle, mais ça fait trop "bricolage" et c'est du tout intuitif).

Je suis donc un peu perplexe : est-ce que je suis parti dans une mauvais direction ? En fait, c'est finalement un truc du style drag & drop que je cherche à faire perplexe
Ou alors, faut-il que je code quelque chose pour remettre à "zéro" mon puzzle.

Là j'ai besoin de vos lumières expertes sourire
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 - 17:42

Le truc, c'est que j'ai rein compris à ton puzzle. Tu ne voudrais pas faire des schéma explicatifs et des images et tout ? Tant pis si on est spoilé.

_________________
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 20 Nov 2014 - 17:54

Ok je te fais ça de suite 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.   Jeu 20 Nov 2014 - 18:11

Voilà sourire












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 : 2430

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 - 18:56

Je me souviens maintenant que j'avais fait une sorte de jeu de Solitaire pour Shai-la où il y a le même mécanisme. Mais je me souviens pas qu'elle ait utilisé ce truc, c'était avec des cartes chocogrenouilles. Bref.
Je peux te l'envoyer en MP si tu veux.

_________________
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 20 Nov 2014 - 19:07

Oui je suis preneur, merci sourire
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 - 19:50

Plusieurs solutions. Celle que je ferai :
-tu fais trois objets bien comme il faut (par exemple, oUn, oDeux et oTrois, avec comme numéro de sprites S_UN, S_DEUX et S_TROIS, avec un sprite S_VIDE transparent de la même taille).
-tu fais trois objets d'inventaires iUn, iDeux, iTrois avec comme Crusor Image S_UN, S_DEUX et S_TROIS.

Dans le general settings, quel est la valeur de ton option Use selected graphic inventory for cursor ? Si c'est true, ne change rien, si c'est false, dans la room en question tu fais un truc comme ça :
Code:
function room_Load()
{
    SetGameOption (FIXEDINVCURSOR , 0) // c'est peut-être 1, l'aide est pas super claire
}

function room_Leave()
{
    SetGameOption (FIXEDINVCURSOR , 1) // c'est peut-être 0, l'aide est pas super claire
}
N'oublie pas de créer les events avec l'éditeur.

Ensuite, dans le script de la room, tu définies ces deux fonctions (code non testé, essayes de corriger mes coquilles !  sourire ) :
Code:
function echangeObjets() {
    int x = mouse.x;
    int y = mouse.y;
    
    if (GetLocationType(x, y) == eLocationObject) {
            Object* objetsurvole = Object.GetAtScreenXY(x, y);
    }
    
    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
        
    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);
    }
}

Et ensuite, pour chacun des trois objets oUn, oDeux et oTrois, tu renvoie le AnyClick vers la même fonction :
Code:
function oMesObjets_AnyClick()
{
    echangeObjets();
    verifieSiSucces();
}

Normalement, ça devrai donner un truc pas trop mal (non testé, cela dit).
Bon courage !

_________________
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 20 Nov 2014 - 20:07

Ah oui, l'idée de passer par les objets d'inventaires c'est malin sourire
Je teste et je dis quoi...

(Merci) ;p
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 : 2430

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 - 20:28

La solution de Billbis ma paraît une piste intéressante. Il y a un problème de portée de variable dans son code cependant : la déclaration de objetsurvole ne devrait pas être enchâssée dans le if, seulement son assignation de valeur.
Quoi qu'il en soit, je m'en vais t'envoyer un lien vers ChocoSolitaire chef.

_________________
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 20 Nov 2014 - 20:31

Pour l'instant je n'arrive pas à le tester. J'ai un Undefined symbol sur la ligne:
Code:
if (objetsurvole.Graphic == 433) {
perplexe

EDIT:
Ah, Kitai a dégainer plus vite que moi sourire
Par contre, mes modestes connaissances en prog montrent leurs limites, car je ne comprends pas ta réponse Kitai :'(
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 : 2430

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 - 20:43

Il faut faire comme ça:
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
        
    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);
    }
}

_________________
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 20 Nov 2014 - 21:03

le jeu se lance...
Mais dès que je clique sur un objet il plante à:
Code:
player.LoseInventory(activeItem);

(Et si je shunte cette ligne, quand je clique sur un objet le curseur devient simplement invisible)


Dernière édition par chefgeorges le Jeu 20 Nov 2014 - 21:12, édité 1 fois
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 : 2430

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);

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




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

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 1 sur 2Aller à la page : 1, 2  Suivant
 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: