After et Before ??

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

Modérateurs: Stormi, Otto Grimwald

After et Before ??

Messagepar Brachius le Ven Jan 07, 2005 8:13 pm

Bien le bonjour à tous,
ça fais un petit moment que je ne suis pas venu poster sur le forum (cause de probleme de santé) :s. Mais maintenant remis sur pied, je me replonge dans le language Inform et déja une question me viens :

Je ne comprend pas la diffrenrce entre After et Before qui ce trouve dans le tutotiel.

Ce serais sympa que quelqu'un m'explique la difference :).

Merci à vous et bonne aventure ...
Brachius
 

Messagepar Otto Grimwald le Ven Jan 07, 2005 11:39 pm

bonsoir,

je pense que la différence entre les deux peut s'expliquer si tu as besoin de tester des conditions résultant de certaines actions dans un certain ordre.
Before executera la condition avant tout chose, alors que after le fera après que le joueur ait lancé son action.
Je n'ai jamais bien vu l'utilité, mais dans certains cas cela doit sans doute être utile.
Si quelqu'un peut préciser...

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

Messagepar JL le Sam Jan 08, 2005 3:31 am

La propriété before d'un objet sur lequel le joueur agit est exécutée avant que l'action soit accomplie, et permet éventuellement d'empêcher cette action.

La propriété after d'un objet sur lequel le joueur agit est exécutée après l'accomplissement de l'action, mais avant que le jeu annonce ce qui s'est passé. Elle ne concerne que les actions du groupe 2, qui modifient l'état du jeu.

Les propriétés react_after et react_before fonctionnent de manière analogue pour les réactions des objets animés. Par exemple, avec le verbe "Go", react_before sera déclenchée pour les objets animés du lieu de départ, alors que react_after le sera pour ceux du lieu d'arrivée.

Pour plus d'informations :
http://www.firthworks.com/roger/informfaq/vv.html#2
http://www.inform-fiction.org/manual/html/s4.html
http://www.inform-fiction.org/manual/html/s6.html

-- JL
JL
Grand Ancien
 
Messages: 287
Inscription: Mer Aoû 25, 2004 9:13 pm

:)

Messagepar Brachius le Sam Jan 08, 2005 3:34 pm

Pas super simple à comprendre mais c'est déjà beaucoup plus clair dans mon esprit Smile. Merci pour vos réponse. Je vais de ce pas me plonger dans la suite de ma formation à inform.
Brachius
Sorcier du culte
 
Messages: 8
Inscription: Sam Jan 08, 2005 2:08 pm
Localisation: Belgique

Messagepar JL le Sam Jan 08, 2005 3:52 pm

Oui, pas évident (en particulier l'exemple avec le verbe "Go"). Mais sur des cas précis c'est plus facile à comprendre.

--JL
JL
Grand Ancien
 
Messages: 287
Inscription: Mer Aoû 25, 2004 9:13 pm

Messagepar JB le Lun Mai 09, 2005 2:54 pm

J'ai une question bête (mais j'ai tout oublié)

Quand je fais :

before [;Take : print "vous ramassez le caillou";move caillou to player;],

Ca me fait un truc du style :

> prendre caillou

Vous ramassez le caillou. Vous avez déjà le caillou !

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

Messagepar JL le Lun Mai 09, 2005 3:46 pm

Si j'ai bien compris le but est de remplacer le message par défaut sans changer le résultat de l'action.

Dans ton exemple il faut retourner True pour interrompre l'action, sinon l'action est exécutée deux fois :

before [;Take : print "vous ramassez le caillou";move caillou to player;rtrue;],


Mais ici le plus simple est d'utiliser after pour laisser faire l'action mais interrompre le message par défaut :
after [;Take: "vous ramassez le caillou";],


Remarque : "..."; sans print est équivalent à print "...^"; rtrue;

Plus de détails par exemple ici : http://www.inform-fiction.org/manual/html/s4.html

-- JL
JL
Grand Ancien
 
Messages: 287
Inscription: Mer Aoû 25, 2004 9:13 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