[I7] Une petite chose qui m'échappe (attendre 1 touche)

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

Modérateurs: Stormi, Otto Grimwald

[I7] Une petite chose qui m'échappe (attendre 1 touche)

Messagepar ciseur68 le Mer Fév 10, 2010 10:26 pm

Bonsoir à toutes et à tous
Je suis nouveau dans l'écriture de Fiction Interractives (c'est la faute au tuto de Farvardin chez les zéros :P ) et j'utilise Inform 7.
Ayant déjà joué à certaines IF, je sais que l'on peut stopper l'affichage du text et afficher la suite en appuyant sur espace ou entrée (comme dans FILAMENTS par exemple), mais je ne sais pas comment le faire sur ma fiction :?
Une idée pour moi ?
-César-
Avatar de l’utilisateur
ciseur68
Investigateur
 
Messages: 79
Inscription: Mer Fév 10, 2010 6:43 pm

Re: Une petite chose qui m'échappe ...

Messagepar Adrien le Mer Fév 10, 2010 10:54 pm

En tant que vieux dinosaure qui n'est pas encore passé à Inform 7, je ne peux pas te répondre mais Otto (alias Farvardin) ou un autre le fera sans doute rapidement.

En attendant, je te souhaite la bienvenue :)
Avatar de l’utilisateur
Adrien
Très Ancien
 
Messages: 1101
Inscription: Mar Aoû 24, 2004 9:23 am
Localisation: Montpellier, France

Re: Une petite chose qui m'échappe ...

Messagepar Otto Grimwald le Mer Fév 10, 2010 10:59 pm

Bonsoir et bienvenue Ciseur68 !

C'est facile à faire, il faut inclure une extension (qui est déjà fournie avec Inform 7), en tapant tout d'abord dans le code :

Code: Tout sélectionner
Include Basic Screen Effects by Emily Short.


Ensuite, durant ton jeu, tu peux ajouter une attente terminée par n'importe quelle touche en tapant :

Code: Tout sélectionner
wait for any key;


voire même pour effacer l'écran ensuite :

Code: Tout sélectionner
clear the screen;


Par exemple si on veut que le joueur soit assomé et transporté dans une autre salle, on peut donner cet effet de transition :

Code: Tout sélectionner
Instead of attacking super méchant:
        say "Votre ennemi a le dessus et il vous assome.";
   wait for any key;
   clear the screen;
   move player to prison.


(je pense que l'on peut ne proposer qu'une seule touche prédéfinie avec "wait for the enter key" par exemple, mais c'est plus limité comme utilisation)

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

Re: [I7] Une petite chose qui m'échappe (attendre 1 touche)

Messagepar Akien le Jeu Fév 11, 2010 5:54 pm

Bienvenue Ciseur68 !
Ça fait plaisir de voir que le tuto d'Otto (aka Farvardin) fait déjà des intéressés qui veulent s'essayer à l'IF et éventuellement grossir nos rangs.

Pour ma part je suis toujours sous Inform 6, mais je n'exclus pas de passer à Inform 7 un jour (quand j'aurais le temps par exemple, et si Stormi ne me recrute pas avant pour traduire TADS 3 :p).
Avatar de l’utilisateur
Akien
Grand Ancien
 
Messages: 298
Inscription: Mer Mai 09, 2007 1:31 pm
Localisation: En Allemagne, en France ou au Danemark, ça dépend

Re: [I7] Une petite chose qui m'échappe (attendre 1 touche)

Messagepar ciseur68 le Sam Fév 13, 2010 12:08 pm

Merci beaucoup à tous de votre accueil chaleureux et de votre rapidité de réponse :D
Étant en train de rédiger ma première fiction interactive (rien de grand hein, c'est juste histoire de vérifier si je suis capable de faire ce que je veux avec ce langage ^^), je me confronte à un nouveau petit problème : j'aimerais que le joueur puisse accéder à une aide sur le fonctionnement du jeu en tapant aide, mais comme il ne s'agit pas d'un verbe, je ne sais pas trop comment faire. Alors si une ou plusieurs solutions sont possible(s), je suis preneur ^^
Merci à vous tous :)

PS à Otto : Tu as parlé d'une suite éventuelle pour ton tuto, alors saches que si tu la fait, tu fera au moins un heureux :lol:
-César-
Avatar de l’utilisateur
ciseur68
Investigateur
 
Messages: 79
Inscription: Mer Fév 10, 2010 6:43 pm

Re: [I7] Une petite chose qui m'échappe (attendre 1 touche)

Messagepar Otto Grimwald le Sam Fév 13, 2010 1:48 pm

Tu peux aller étudier ce code disponible ici :

http://svnweb.tuxfamily.org/filedetails ... 2Fstory.ni
(il faut le télécharger pour l'affichage correct des caractères, en utf8)

Il y a 2 manières de procéder, la simple, et la plus complexe.

D'abord la simple, pour des besoins basiques :

À la partie sur les crédits, il y a :

Code: Tout sélectionner
Understand "credits" and "credit" as a mistake ("bla bla")


Cela veut dire : "credits" et "credits" ne sont pas des commandes habituellement reconnues (c'est à dire des phrases qu'on peut customiser à loisir, dans un contexte particulier), donc mettre une réponse-type lorsqu'on tape ces mots. Ici on s'en sert pour donner des informations sur les remerciements en rapport avec ce jeu. Si l'aide n'est pas destinée à être conceptuelle, on peut utiliser la même astuce :
Code: Tout sélectionner
Understand "aide" as a mistake ("Pour finir le jeu, il faut entrer dans le château par la trappe dans la cabane à l'extérieur etc etc")


L'autre manière plus complexe (mais pas si difficile que cela) c'est de redéfinir "aide" comme un nouveau verbe.

Dans le même code donné en lien plus haut, on a par exemple le code du verbe "astuce"

Code: Tout sélectionner
Hinting is an action applying to nothing. [Cela veut dire que c'est un verbe intransitif, sans complément, s'il y en avait un, on dirait "... applying to one thing". Ici on utilise le mot anglais (hint = astuce), pour pouvoir l'utiliser dans le contexte d'inform7, car il me semble que cela attend un -ing à la fin. On aurait pu écrire "Astucing" mais c'est un peu ridicule.]
Understand "astuces" or "astuce" or "hint" or "hints" as hinting.  [ici on écrit les mots-clés qui seront reconnus par l'interpréteur pour déclencher l'action du verbe. On ajoute également les mots anglais pour être plus cohérent et aider nos amis anglophones et francophiles qui pourraient être tentés de jouer à nos jeux...]

Carry out hinting:  [ici c'est pour indiquer la conséquence de l'appel de ce verbe dans le jeu]
   say "Dans ce jeu vous devez trouver un moyen de réparer votre voiture, et éventuellement de ne pas trop perdre vos précieuses affaires.[paragraph break]"; [cette phrase sera toujours affichée]
   if the location is in BordureDeRoute and Citroen is not in Petite route descendante, say "-> Pour le moment tout va bien, mais cela ne va pas durer. Essayez de continuer la route vers le sud pour voir...";  [ici on a des conditions pour afficher des indications selon le lieu où on se trouve, si certains objets ont certaines propriétés ou se trouve à un certain endroit etc...]
   if the location is in BordureDeRoute and Citroen is in Petite route descendante, say "-> Essayez d[']examiner votre voiture et d[']ouvrir ses divers compartiments.";
   [/.../]
   say "[line break]Il n[']y a pas d[']autres astuces pour le moment, mais vous pourrez réessayer cette commande dans un autre contexte pour découvrir de nouvelles suggestions.".


Je rajouterai cette explication dans la version 2 du tutoriel sur le site du Zéro.

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

Re: [I7] Une petite chose qui m'échappe (attendre 1 touche)

Messagepar ciseur68 le Dim Fév 14, 2010 11:32 am

Merci beaucoup, grâce à toi, j'avance à pas de géants dans ma mini IF :)
Il faudra sûrement s'attendre à ce que je repose une ou deux questions, mais pour l'instant, tout va bien ^^
Bon après-midi

Edit : Et me revoilà Pour une question ^^
J'aimerais créer une sorte de score sans avoir à affiché notre score à la fin d'une partie. J'ai cherché dans le manuel pour créer une variable, mais quand je reproduis ce qu'ils disent, il me mettent que mon mot n'est pas une valeur, etc.
Quelqu'un pourrait-il me montrer les quelques lignes qui définissent une variable ?
Merci d'avance :D
-César-
Avatar de l’utilisateur
ciseur68
Investigateur
 
Messages: 79
Inscription: Mer Fév 10, 2010 6:43 pm

Re: [I7] Une petite chose qui m'échappe (attendre 1 touche)

Messagepar Otto Grimwald le Dim Fév 14, 2010 1:10 pm

De rien. Sinon il vaut mieux créer un nouveau sujet plutôt que d'éditer, parce que sinon on ne voit pas forcément qu'il y a une nouvelle question ;)

Pour ton problème, il y a 2 possibilités pour résoudre cela :

- De façon générale pour utiliser une nouvelle variable, il suffit d'utiliser la forme (ici un peu artificielle, car on peut faire mieux, voir plus bas) :

Code: Tout sélectionner
NbDeSouvenirs is a number that varies.

When play begins:   
   now NbDeSouvenirs is 0.  [à rajouter dans l'initialisation générale pour initialiser la variable. Peut-être que l'on peut écrire aussi lors de la création de la variable :  NbDeSouvenirs is 0 (à tester)]

Instead of thinking:
say "Vous pensez à un truc agréable.";
increase NbDeSouvenirs by 1.  [On incrémente la valeur de la variable par 1 lors d'une action particulière]


Mais si on souhaite que le même nom de variable soit utilisé par plusieurs objets, on peut aussi écrire :

Code: Tout sélectionner
A person has a number called souvenir. The souvenir of player is 0. The souvenir of belle princesse is 0. [initialisation directe]

Instead of thinking:
    say "Vous pensez à un truc agréable.";
    increase the souvenir of player by 1.

Instead of kissing belle princesse:
    say "Vous embrasser la princesse qui rougit.";
    increase the souvenir of belle princesse by 1.


- La seconde possibilité pour ton histoire de score, c'est de bidouiller ainsi :

Code: Tout sélectionner
Use no scoring. [on dit qu'il n'y a pas de score dans le jeu, ainsi cela désactive le verbe qui donne le score, et à la fin du jeu il n'y a pas de mention du score, mais le reste est fonctionnel.]

Instead of attacking mechant:
    say "Vous maîtrisez le méchant et le conduisez en prison.";
    remove mechant from play;
    award 1 point.  [award c'est le mot clé qui permet d'augmenter le score. Il sera ainsi augmenté de façon invisible, mais cela ne sera pas notifié au joueur.]

After talking to juge:
    if the score is greater than 3, say "Vous avez résolu [score] affaires criminelles, bravo M. le détective !".


Bien entendu, dans un cas comme cela, cela pourrait être plus logique d'utiliser le système de variable plus haut, mais j'indiquais également cette possibilité au cas où.

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

Re: [I7] Une petite chose qui m'échappe (attendre 1 touche)

Messagepar ciseur68 le Dim Fév 14, 2010 8:29 pm

Merci beaucoup (encore une fois ^^) pour ta réponse. J'ai pris la troisième solution, mais les autres me seront probablement encore utiles.
Alors que je suis en pleine rédaction de ma IF, un tout petit problème se pose encore à moi :
Lorsque je met le code ci-dessous, j'ai une contradiction avec l'extension française d'inform qui dit par défaut que le personnage est habituel.
Code: Tout sélectionner
The description of yourself is "Gnagnagna".

Comment puis-je alors choisir la description de mon perso ?

Merci beaucoup
Bonne soirée
-César-
Avatar de l’utilisateur
ciseur68
Investigateur
 
Messages: 79
Inscription: Mer Fév 10, 2010 6:43 pm

Re: [I7] Une petite chose qui m'échappe (attendre 1 touche)

Messagepar Otto Grimwald le Dim Fév 14, 2010 10:28 pm

essaye : Instead of examining player, say "bla bla bla.".

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


Retourner vers Questions techniques et aide pour votre code

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron