Je termine l’adaptation de l’un de mes anciens jeux DOS en inform. Mais avant de le soumettre à des béta testeurs, j’aurais besoin de quelques conseils pour terminer la programmation…
Le premier est (je pense ) tout simple : à l’époque où je programmais en BASIC, je n’utilisais pas de système de score au sein de mes jeux. Et pour terminer le jeu, je rajoutait quelques lignes de code, qui affichaient un message puis stoppaient l’éxécution du programme. Sous inform, existe-il une sub à appeler afin de terminer un jeu ? Où suis-je obligé d’utiliser le système de score ?
Alors deadflag=2 ça marche mais pas la constante de score, mais ce n’est pas grave…
Je rajoute une question : comment puis-je bricoler un pont ultra simple (à double passage/face)? Il n’y a pas de piège, pas de clé… bref, un truc tout simple
Par contre, vous pourriez regarder la fin de mon jeu : cette sub est appelée lorsque le joueur examine un objet. Tout se déroule bien à l’exécution, mais un 1 apparaît juste avant le texte « Vous avez gagné »
!sub qui gère la pause
[Pause notNeeded;
@read_char 1 notNeeded;
rtrue;
];
!sub qui est appelée pour terminer le jeu
[Fin notNeededb;
Pause();
print "Après quelques instants, vous remarquez que votre reflet n'y apparaît pas.^^";
Pause();
print "Finalement, c'est le reflet de votre chambre qui s'offre à votre regard.^^";
Pause();
print "La très faible lumière ambiante s'estompe soudain...^^";
Pause();
print "Vous ouvrez les yeux, et vous vous aperçevez que vous êtes rentré chez vous...^^";
Pause();
print "Après un long voyage dans le monde d'Interra.^^^";
!print "^";
@read_char 1 notNeededb;
deadflag=2;
!];
!deadflag=2;
!rfalse;
!return;
];
J’ai pourtant enlevé des 1 sur d’autres passages mais ici je n’y suis pas arrivé… (merci d’avance)
euh en mettant un point virgule, il n’est pas certain qu’il execute la procedure Fin() du coup puisque le fait de faire « C’est un miroir… » fait un print et un return en une seul fonction, du coup la fonction d’après n’est sans doute pas exécutée… Tu devrais essayer:
before[;
Examine:
print "C'est un miroir en pied, entouré de très fines ferronneries.^^";
Fin();
return true;
],
Enfin d’après mes souvenirs d’inform, ça fait longtemps
Et juste une petite question : comment puis-je spécifier dans une room un texte qui s’affiche au moment où l’on part vers une direction ? Genre je vais au nord et « Vous marchez en direction du nord sur une petite route bordée d’arbres » ?
oups désolés ça faisait longtemps et j’avais pas de compilateur inform sous la main
maintenant oui :
Object clairiere "Dans la clairière..."
with description "Les oiseaux gazouillent et les mouches pètent, tout va pour le mieux à l'orée de la forêt...",
n_to petiteRoute,
before [;
Go:
if(noun == n_obj)
print "Vous marchez en direction du nord sur une petite route bordée d'arbres.^";
],
has light;
Merci à vous tous j’ai beaucoup avancé dans la programmation.
C’est pas encore pour tout de suite mais comment puis-je partager le fichier zcode de mon jeu afin de le soumettre à vos tests ? Dois-je utiliser le dépot ?
Tant que j’y pense, y a t-il de grosses différences entre un fichier compilé en Z5 et en Z8 ? Je constate en effet que les 2 types cohabitent.