Inform 6 : help

Pour discuter des langages que nous utilisons pour réaliser nos jeux : problèmes, solutions, suggestions...

Modérateurs: Stormi, Otto Grimwald

Re: Inform 6 : help

Messagepar JB le Ven Mai 14, 2010 10:13 pm

Ok,

Dans le kit de démo,

Quelle est la différence entre le glulxe.exe qui est dans outil_win/gargoyle_inform et celui qui est juste dans outil_win ?

Comment se fait-il que le premier soit ainsi customisé (taille de fenetre, typo...) contrairement au second ?

Comment peut on customiser ces apparences ?

Merci pour vos réponses !

JB
Avatar de l’utilisateur
JB
Grand Ancien
 
Messages: 510
Inscription: Mar Aoû 24, 2004 11:00 am
Localisation: Paris

Re: Inform 6 : help

Messagepar JB le Sam Mai 15, 2010 7:06 am

Bon, comme quoi y a pas d'heure pour coder, je suis obligé de prendre le glulxe.exe qui est juste dans outil_win car l'autre qui est dans outil_win/gargoyle_inform pose des problèmes au niveau de la gestion des fenetres.

Pourquoi le ogg marchait pas ? Parce que dans la version Gluxle de base téléchargeable sur internet, y a pas tous les dll qui étaient là, notamment le ogg.dll

Par contre, j'aimerais bien pouvoir customiser le gluxle.

J'ai créé un fichier .cfg qui change 2 - 3 choses mais y a t il une doc plus complète ?

JB
Avatar de l’utilisateur
JB
Grand Ancien
 
Messages: 510
Inscription: Mar Aoû 24, 2004 11:00 am
Localisation: Paris

Re: Inform 6 : help

Messagepar JB le Sam Mai 15, 2010 8:19 am

Ok c'est bon.

JB
Avatar de l’utilisateur
JB
Grand Ancien
 
Messages: 510
Inscription: Mar Aoû 24, 2004 11:00 am
Localisation: Paris

Re: Inform 6 : help

Messagepar Otto Grimwald le Sam Mai 15, 2010 8:45 am

Salut JB,

je suis ravis que mon kit débutant ait pu servir à un programmeur vétéran qui a déjà plus de 7 jeux à son actif ! ;)

Alors pour répondre à tes questions, le fichier css ne sert que pour les fichiers html (readme). Il y avait une suggestion pour utiliser un fichier de style dans glulxe, mais je ne sais pas trop où ça en est, il me semble que c'est encore à l'étude, ce qui pourrait être très pratique. Pour le code coloré, j'avais utilisé un outil en ligne mais je ne sais plus lequel

Pour les numéros de ressources, tu peux mettre ce que tu veux, il me semble que tu peux avoir le même numéro attribué aux sons et images, mais selon les packageurs, c'est pas garanti que cela fonctionne (tu peux faire quand même l'essai). Je conseille plutôt d'utiliser des centaines, ou milliers, pour différencier le type de ressources, en plus l'avantage c'est que si tu les recherches dans ton code tu trouveras plus facilement un long numéro genre 1002 que 2, qui a dû être utilisé une centaine de fois ailleurs dans un autre contexte.

Pour la différence entre le glulxe de gargoyle, et celui dans outils_win, normalement à part la typo, il n'y en a pas de fondamentale, le fenêtrage devrait fonctionner pareil dans un cas comme dans l'autre. L'apparence de gargoyle est souvent plus jolie quand même (pas de bordure entre les fenêtres). Je viens d'essayer le Glulxe.exe (pas celui de gargoyle) avec un émulateur, et même si je n'ai pas les fichiers ogg.dll et vorbis.dll dans le dossier, j'ai quand même le son (pour info c'est vorbis qui gère le son, ogg c'est pour empaqueter ce son). Peut-être que c'est une ressource partagée qui se trouve dans les dossiers de windows ? Si tu penses que cela manque, tu peux contacter David Kinder qui s'occupe de winglulxe.

Ces fichiers dans le kit sont quand même un peu vieux, essaye de récupérer la dernière version de gargoyle sur http://code.google.com/p/garglk/

J'ai mis un fichier de configuration, à adapter selon la taille de fenêtre souhaitée, ici : http://ifiction.free.fr/index.php?id=affichage (mais c'est uniquement pour gargoyle, car c'est le seul qui est multiplateforme et dont on est certain qu'il s'affichera pareil sur windows, mac os x et linux.

Tu peux m'envoyer ton fichier blb à l'occasion, je pourrais le tester et te dire ce qu'il en est.

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3031
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: Inform 6 : help

Messagepar auraes le Ven Nov 19, 2010 5:50 pm

C'est surement obsolète mais voici peur-être une réponse pour :
« Je suis avec un bug qui me rend fou... bon, le héros conduit un bus et tourne à gauche ou à droite. » :

[TurnLeftSub ; print "^That would be irrelevant, now.^" ; ];
[TurnRightSub ; print "^That would be irrelevant, now.^" ; ] ;
Extend 'turn' replace
* 'left' -> TurnLeft
* 'right' -> TurnRight;

Cela ne peut pas faire autre chose que de renvoyer un message par défaut puisque il n'y a aucun message envoyé à l'objet « bus ».
Donc inutile d'essayer de l'intercepter avec un « before: ». La routine affiche simplement le message.
Un petit exemple qui fonctionne :
Code: Tout sélectionner
Constant Story "Le bus en folie.";
Constant Headline "^Inform 6 game.^";
!============================================================================
Include "Parser";
!============================================================================
[ ParserError error_type;
   switch (error_type) {
      SCENERY_PE: PrintOrRunVar(location.description); rtrue;
   }
   rfalse;
];
!============================================================================
Include "VerbLib";
!============================================================================
Object bus "Sur la route..."
   with
      name 'bus',
      initial "^C'est parti pour le Bus en folie...",
      describe "Vous êtes au volant du bus le pied au plancher...",
      description "C'est un vrai bolide!",
      before [ w swn; ! sauvegarde de wn!?         
         TurnLR:
            swn = wn; wn = 3;
            w = NextWord();
            print "Hé Hop... CRIIIIII...^une bonne embardée à ",(address) w,"...^";
            wn = swn;
            rtrue;
      ],
      cant_go [;
         if (noun < u_obj)
            "VROOOOM-VRAOUM... à fond vers ", (the) noun,"...";
         "Hé... c'est qu'un bus!";
      ],
   has static enterable light
;
!============================================================================
[ Initialise ;
   location = bus;
   lookmode = 2;
];
!============================================================================
Include "Grammar";
!============================================================================
[ TurnLRSub;
   ! bus.before(); ! inutile en fait; le bus est ici une room.
];
Extend 'tourner' replace
Verb 'tourner'
   * 'a' 'droite'/'gauche' -> TurnLR
;

ParserError() est simplement là pour une petite astuce avec "describe" et "description" (Bus est ici une "Room"); rien à voir avec le sujet.
Dernière édition par auraes le Sam Nov 20, 2010 7:14 am, édité 2 fois.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Inform 6 : help

Messagepar auraes le Ven Nov 19, 2010 8:13 pm

Un peu plus compliqué!
Code: Tout sélectionner
Constant Story "Le bus en folie.";
Constant Headline "^Inform game.^";
!============================================================================
Include "Parser";
!============================================================================
[ ParserError error_type;
   switch (error_type) {
      SCENERY_PE: PrintOrRunVar(location.description); rtrue;
   }
   rfalse;
];
!============================================================================
Include "VerbLib";
!============================================================================
Object bus "Sur la route..."
   with
      name 'bus',
      initial "^C'est parti pour le Bus en folie...",
      describe "Vous êtes au volant du bus le pied au plancher...",
      description "C'est un vrai bolide!",
      before [ w swn; ! sauvegarde de wn!?         
         TurnLR:
            swn = wn; wn = 3;
            if (~~w) w = NextWord();
            print "Hé Hop... CRIIIIII...^une bonne embardée à ",(address) w,"...^";
            wn = swn;
            rtrue;
      ],
      compass_look [ obj w saction;
         if (obj >= n_obj && obj < u_obj) {
            w = random('drrroite','gauuuche');
            saction = action; ! sauvegarde de action!?   
            action = ##TurnLR;
            self.before(w);
            action = saction;
            print "CRIIIIII... criiiiii... vroooom-vraoum...^";
            rtrue;
         }
      ],
      cant_go [;
         if (noun >= n_obj && noun < u_obj)
            "VROOOOM-VRAOUM... à fond vers ", (the) noun,"...";
         "Hé... c'est qu'un bus!";
      ],
      each_turn [;
         if (random(3)~=1) rfalse;
         "@<< ", (string) random("TUT! TUUUT", "COIN! COIN", "POUET! POUET", "PIN-PON! PIN-PON"), "!... @>>";
      ],
   has static enterable light
;
!============================================================================
[ Initialise ;
   location = bus;
   lookmode = 2;
];
!============================================================================
Include "Grammar";
!============================================================================
[ TurnLRSub;
   ! bus.before(); ! inutile en fait; le bus est ici une room.
];
Extend 'tourner' replace
Verb 'tourner'
   * 'a' 'droite'/'gauche' -> TurnLR
;
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Inform 6 : help

Messagepar auraes le Sam Nov 20, 2010 7:17 am

Cette fois le "Bus" est bien un objet dans une "Room"
Code: Tout sélectionner
Constant Story "Le bus en folie.";
Constant Headline "^Inform 6 game.^";
!============================================================================
Include "Parser";
Include "VerbLib";
!============================================================================
Object route "Sur la route..."
   with
      description [;
         if (player in bus) "La route défile à vive allure...";
         "Un super bus est stationné ici.";
      ],
      cant_go "Montez dans le bus!",
   has light
;
Object bus "super bus" route
   with
      name 'bus',
      !inside_description "",
      description "C'est un vrai bolide!",
      react_before [;
         GO:
            if (player in bus) {
               if (noun >= n_obj && noun < u_obj)
                  "VROOOOM-VRAOUM... à fond vers ", (the) noun,"...";
               "Hé... c'est qu'un bus!";
            }
      ],
      before [ w swn; ! sauvegarde de wn!?
         Vbus:
            switch (verb_word) {
               'tourner':
                  swn = wn; wn = 3; w = NextWord();
                  print "Hé Hop... CRIIIIII...^une bonne embardée à ",(address) w,"...^";
                  wn = swn; rtrue;
               'accelerer': "VROOOOM-VRAOUM!...";
               'freiner': "CRIIIIIiiiiiii!...";
               'klaxonner': "TUTU TUUU!...";
            }
      ],
 has  static enterable concealed transparent
;
!============================================================================
[ Initialise ;
   location = bus; lookmode = 2;
];
!============================================================================
Include "Grammar";
!============================================================================
[ VbusSub;
   if (player in bus) {
      if (verb_word == 'tourner')
         testArg();
      bus.before();
   }
   else
   "Hé! du calme... vous n'êtez pas encore dans le bus.";
];

[ testArg; ! Si tourner sans arguments : > tourner
#Ifdef TARGET_ZCODE;
   if (parse->1 == 1) {
      parse-->(2*2-1) = 'a';
      parse-->(3*2-1) = random('droite', 'gauche');
      parse->1 = 3;
      wn = 4;
   }
#Ifnot; TARGET_GLULX
   if (parse-->0 == 1) {
      parse-->(2*3-2) = 'a';
      parse-->(3*3-2) = random('droite', 'gauche');
      parse-->0 = 3;
      wn = 4;
   }
#Endif;
];

Extend 'tourner' first
   * -> Vbus
   * 'a//' 'droite'/'gauche' -> Vbus
;
Verb 'accelerer' 'freiner' 'klaxonner' ! etc
   *  -> Vbus
;
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Précédente

Retourner vers Questions techniques et aide pour votre code

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

cron