Differences

This shows you the differences between the selected revision and the current
version of the page.


fr:wmebook:ch7 2011/10/20 16:24 fr:wmebook:ch7 2011/10/22 17:38 current
Line 153: Line 153:
</code> </code>
-**  -------------------- EN COURS DE TRADUCTION ------------------ ** +D'abord nous avons créé un tableau appelé options. C'est très utile, pas seulement pour garder le texte propre et dans un seul endroit, mais aussi parce que quand la valeur est sélectionnée, notre acteur peut facilement dire les mots que le joueur a sélectionnés.Puis vient la mécanique du dialogue. Le dialogue par lui même est une boucle, qui tourne jusqu’à ce que le joueur choisisse l'option 3 (au revoir). Donc à chaque parcours de la boucle, la boite de dialogue est recréée et le joueur peut choisir son option à nouveau.
-First we’ve created an array called options. This is very useful not only for the keeping texts tidy and in one place, but also because when the value is selected our actor can easily say the words player selected. Then comes the logic of the dialogue. The dialogue itself is a loop, which loops until player selects the option 3 (Bye). So every time the loop iterates, the dialogue box is recreated and player can choose again his options.+
-We can see that inside of this loop we first assign 3 responses (we didn’t solve the book issue yet) and then set the game to interactive mode. But it was already interactive, so why? Because we don’t want our player to roam around while chatting, so we set the game to interactive mode only for the dialogue selecting. We wait for the player’s input and then use the switch logic to choose the response. As I already outlined, you can do anything as a response. If you decided that after certain option game unexpectedly quits to the desktop, simply put there Game.QuitGame(); but don’t blame me if players torture you afterwards.+Nous pouvons voir qu'à l’intérieur de cette boucle nous avons attribuer 3 réponses (nous n'avons pas résolu le problème du livre encore) et ensuite on met le jeu en mode interactif. Mais il était toujours interactif, alors pourquoi? Parce qu'on ne veut pas que notre joueur tourne en rond tout en discutant, donc nous mettons le jeu en mode interactif seulement pour les dialogues. Nous attendons la saisie du joueur et puis utilisons la logique Switch pour choisir la réponse. 
 +Comme je l'ai déjà indiqué, vous pouvez faire n'importe quoi comme une réponse. Si vous avez décidé qu'après avoir choisit une certaine option le jeu se ferme inopinément directe vers ​​le bureau, mettez simplement Game.QuitGame(); Mais venez pas vous plaindre si les joueur vous torture après.
-Okay, let’s deal with the book issue. We want player to speak about the book only when she takes it. It’s actually very intuitive and it’s combining the ideas of the previous chapter too. Modify the basic function to:+Okay, voyons le problème du livre. Nous voulons que le joueur parle du livre seulement si il l'a pris. C'est vraiment très intuitif et c'est la combinaison des idées du chapitre précédent aussi. modifiez la fonction basic pour:
<code script> <code script>
Line 167: Line 167:
</code> </code>
-So we’re saying here, that only if actor holds a book in his inventory, this option should be added to the dialogue tree. Neat. And of course we need to define appropriate answer.+Donc nous avons dis là, que seulement si l'acteur détient le livre dans son inventaire, cette option peut être ajouté a l'arborescence des dialogues. Sympa. Et bien sûr nous avons besoin de définir la réponse adaptée.
<code script> <code script>
case 1: case 1:
- sally.Talk("Who exactly is of interest to you?"); + sally.Talk("Qui vous intéresse exactement?");
break; break;
case 2: case 2:
- sally.Talk("I don't know but it really looks neat!"); + sally.Talk("Je sais pas mais ça a l'air vraiment sympa!");
break; break;
case 3: case 3:
- sally.Talk("See ya!"); + sally.Talk("A plus tard!");
break; break;
</code> </code>
-I hope you’re starting to get the feeling of the whole thing. But how about moving to the second level? We’ve decided to use a function called **colleagues** for it, so let’s do it.+J'espère que vous commencez à avoir sentir toute la chose. Mais que diriez-vous de passer au deuxième niveau? Nous avons décidé d'utiliser une fonction appelée **colleagues** pour cela, allons donc la faire.
-modify the case 1: section to read:+modifiez la section case 1: pour avoir:
<code script> <code script>
case 1: case 1:
- sally.Talk("Who exactly is of interest to you?"); + sally.Talk("Qui vous intéresse exactement?");
colleagues(); colleagues();
break; break;
</code> </code>
-Now we have to define the colleagues() function.+Maintenant nous devons définir la fonction colleagues().
<code script> <code script>
Line 201: Line 201:
options[1] = "Peter?"; options[1] = "Peter?";
options[2] = "Dirac?"; options[2] = "Dirac?";
- options[3] = "Back to my other questions.";+ options[3] = "Revenons à mes autres questions";
- Game.StartDlgBranch(); //We’re starting a branch because of AddResponseOnce + Game.StartDlgBranch(); // Nous allons démarrer une branche à cause de AddResponseOnce
var selected; var selected;
while (selected != 3) while (selected != 3)
Line 220: Line 220:
{ {
case 0: case 0:
- sally.Talk("He was a hero of a Sci-Fi adventure game which was never released."); + sally.Talk("C'était un héros de jeu d'aventure de science-fiction qui n'est jamais sorti.");
break; break;
case 1: case 1:
- sally.Talk("Would you believe it? Peter went missing.");  + sally.Talk("Le croiriez-vous? Peter a disparu.");  
- sally.Talk("We're so scared!"); + sally.Talk("Nous avons tellement peur!");
break; break;
case 2: case 2:
- sally.Talk("Strange fellow. Sharp as a razor."); + sally.Talk("Étrange personnage. Tranchants comme un rasoir.");
break; break;
case 3: case 3:
- sally.Talk("As you wish."); + sally.Talk("Comme vous voulez.");
break; break;
} }
} }
Game.Interactive = true; Game.Interactive = true;
- Game.EndDlgBranch(); //We end a branch here+ Game.EndDlgBranch(); // On termine la branche là
} }
</code> </code>
-So as you can see, it’s really almost identical to the basic() method. The only main difference is the StartDlgBranch / EndDlgBranch combo, which defines the start and the end of the tree branch and provides us with the nice function of having topic disappeared from the tree when we don’t need it (already read it).+Donc, comme nous pouvons voir, C'est vraiment similaire à la méthode basic(). La principale différence c'est la combinaison StartDlgBranch / EndDlgBranch, définissant le début et la fin de la branche et nous permet, avec de la bonne fonction, de faire disparaitre le sujet de l'arbre quand on n'en a plus besoin (déjà lu).
-Okay. You’d say that you don’t need to see the last section because of the perfect analogy to what we’ve just seen here. But I’ve decided to put a plot twist in it!+Ok. Vous diriez que vous n'avez pas besoin de voir la dernière section en raison de l'analogie parfaite de ce que nous venons de voir là. Mais j'ai décidé d'y mettre un rebondissement!
-At the very beginning of this file we’ll create a new global variable called **murderSuspect**. +Au tout début de ce fichier nous allons créer une variable globale appelée **murderSuspect**.
-So our file starts with:+ainsi notre fichier commence par:
<code script> <code script>
Line 253: Line 253:
</code> </code>
-And now we can make this function called Peter:+Et maintenant nous pouvons mettre cette fonction appelée Peter:
<code script> <code script>
Line 259: Line 259:
{ {
var options; var options;
- options[0] = "Where was Peter last seen?"; + options[0] = "Quand avez vous vu Peter pour la dernière fois?"; 
- options[1] = "Did he have any enemies?"; + options[1] = "Avait-il des ennemis?"; 
- options[2] = "Back to my other questions.";+ options[2] = "Revenons à mes autres questions";
var selected; var selected;
Line 278: Line 278:
{ {
case 0: case 0:
- sally.Talk("He was with me on the party. Then he suddenly left.");  + sally.Talk("Il etait avec moi à la fête. Puis il est parti soudainement.");  
- actor.Talk("That's strange. Don't you think?"); + actor.Talk("C'est étrange. Vous trouvez pas?"); 
- sally.Talk("Well... No... It was ... usual."); + sally.Talk("Bien... Non... c’était... habituel.");
break; break;
case 1: case 1:
- sally.Talk("No. Only that stupid girl who was hitting on him.");  + sally.Talk("Non. Seulement cette fille stupide qui le matais.");  
- actor.Talk("A girl you say? Did you get envious or what?"); + actor.Talk("Une fille vous dites? Étiez vous jalouse ou quoi?"); 
- sally.Talk("Envious! Me??? On THAT girl? Never!");  + sally.Talk("Jalouse! Moi??? De CETTE fille? Jamais!");  
- sally.Talk("Besides I would kill hi...");  + sally.Talk("D'ailleurs, je le tu...");  
- actor.Talk("WHAT???"); + actor.Talk("QUOI???"); 
- sally.Talk("Nothing!"); + sally.Talk("Rien!");
murderSuspect = true; murderSuspect = true;
break; break;
case 2: case 2:
- sally.Talk("As you wish."); + sally.Talk("Comme vous voulez.");
break; break;
} }
Line 300: Line 300:
</code> </code>
-The only difference in this one is that we set a global variable which will influence something in the game. This is the key stone on the game logic (sometimes referred as a gaming "butterfly effect" – someone tells you a piece of information and completely unrelated drawer in another town suddenly mysteriously opens – but we’re not discussing game design related flaws, right? Right???).+La seule différence dans celle-ci est que nous avons défini une variable globale qui influencera quelque chose dans le jeu. C'est le fondement de la logique du jeu (parfois appelé «l'effet papillon" du jeu - Quelqu'un vous dis un morceau d'information et un tiroir sans aucun rapport dans une autre ville s'ouvre mystérieusement - Mais nous ne parlons pas des lacunes relatives à la conception du jeu, d'accord? D'accord???).  
-The only remaining change is to the function basic(); but I’m going to post the whole script now because I believe you will be able to spot that easily.+Le seul changement restant est pour la fonction basic(); Mais je vais mettre le script entier parce que je crois que vous est capable de la repérer facilement.
<code script> <code script>
Line 312: Line 312:
{ {
var options; var options;
- options[0] = "Where was Peter last seen?"; + options[0] = "Quand avez vous vu Peter pour la dernière fois?"; 
- options[1] = "Did he have any enemies?"; + options[1] = "Avait-il des ennemis?"; 
- options[2] = "Back to my other questions.";+ options[2] = "Revenons à mes autres questions";
Game.StartDlgBranch() ; Game.StartDlgBranch() ;
Line 332: Line 332:
{ {
case 0: case 0:
- sally.Talk("He was with me on the party. Then he suddenly left.");  + sally.Talk("Il etait avec moi à la fête. Puis il est parti soudainement.");  
- actor.Talk("That's strange. Don't you think?"); + actor.Talk("C'est étrange. Vous trouvez pas?"); 
- sally.Talk("Well... No... It was ... usual."); + sally.Talk("Bien... Non... c’était... habituel.");
break; break;
case 1: case 1:
- sally.Talk("No. Only that stupid girl who was hitting on him.");  + sally.Talk("Non. Seulement cette fille stupide qui le matais.");  
- actor.Talk("A girl you say? Did you get envious or what?"); + actor.Talk("Une fille vous dites? Étiez vous jalouse ou quoi?"); 
- sally.Talk("Envious! Me??? On THAT girl? Never!");  + sally.Talk("Jalouse! Moi??? De CETTE fille? Jamais!");  
- sally.Talk("Besides I would kill hi...");  + sally.Talk("D'ailleurs, je le tu...");  
- actor.Talk("WHAT???"); + actor.Talk("QUOI???"); 
- sally.Talk("Nothing!"); + sally.Talk("Rien!");
murderSuspect = true; murderSuspect = true;
break; break;
case 2: case 2:
- sally.Talk("As you wish."); + sally.Talk("Comme vous voulez.");
break; break;
 + }
} }
} }
Line 359: Line 360:
{ {
var options; var options;
- options[0] = "Marc?";+        options[0] = "Marc?";
options[1] = "Peter?"; options[1] = "Peter?";
options[2] = "Dirac?"; options[2] = "Dirac?";
- options[3] = "Back to my other questions.";+ options[3] = "Revenons à mes autres questions";
Game.StartDlgBranch() ; Game.StartDlgBranch() ;
Line 381: Line 382:
{ {
case 0: case 0:
- sally.Talk("He was a hero of a Sci-Fi adventure game which was never released."); + sally.Talk("C'était un héros de jeu d'aventure de science-fiction qui n'est jamais sorti.");
break; break;
case 1: case 1:
- sally.Talk("Would you believe it? Peter went missing.");  + sally.Talk("Le croiriez-vous? Peter a disparu.");  
- sally.Talk("We're so scared!");  + sally.Talk("Nous avons tellement peur!");
- Peter();+
break; break;
case 2: case 2:
- sally.Talk("Strange fellow. Sharp as a razor."); + sally.Talk("Étrange personnage. Tranchants comme un rasoir.");
break; break;
case 3: case 3:
- sally.Talk("As you wish.");  + sally.Talk("Comme vous voulez.");  
- break; + break;
} }
} }
Line 405: Line 405:
{ {
var options; var options;
- options[0] = "Nice weather, isn't it?"; + options[0] = "Quel temps magnifique, n'est ce pas?"; 
- options[1] = "Can you tell me anything about your colleagues?"; + options[1] = "Pouvez vous me dire quelque chose au sujet de vos collègues?"; 
- options[2] = "What's this book for?"; + options[2] = "A quoi sert ce livre?"; 
- options[3] = "You've murdered Peter!"; + options[3] = "Vous avez tué Peter!"; 
- options[100] = "Bye!"; + options[100] = "Au revoir!"; 
- +
var selected; var selected;
while (selected != 100) while (selected != 100)
Line 428: Line 428:
{ {
case 0: case 0:
- sally.Talk("Not really"); + sally.Talk("Pas vraiment");
break; break;
case 1: case 1:
- sally.Talk("Who exactly is of interest to you?"); + sally.Talk("Qui vous intéresse exactement?");
colleagues(); colleagues();
break; break;
case 2: case 2:
- sally.Talk("I don't know but it really looks neat!"); + sally.Talk("Je sais pas mais ça a l'air vraiment sympa!");
break; break;
case 100: case 100:
- sally.Talk("See ya!"); + sally.Talk("A plus tard!");
break; break;
case 3: case 3:
- sally.Talk("Yes! And now I'll kill you as well! *BLAM*"); + sally.Talk("Oui! Et là je vais vous tuer tout pareil! *BLAM*");
Scene.FadeOut(1000,255,0,0,255); Scene.FadeOut(1000,255,0,0,255);
Game.QuitGame(); Game.QuitGame();
break; break;
} }
- }+ }
Game.Interactive = true; Game.Interactive = true;
} }
Line 456: Line 456:
</code> </code>
- +  
-Just to avoid confusion, Scene.FadeOut fades out the scene to specified color. It’s prototype is:+Seulement pour éviter toute confusion, Scene.FadeOut efface la scène en une couleur spécifique. Son utilisation est:
**Scene.FadeOut(duration, red, green, blue, alpha);** **Scene.FadeOut(duration, red, green, blue, alpha);**
-and we let it fade for 1000 ms (1 sec.), to full red and no transparency. +ici nous laissons s'effacer pendant 1000ms (1 sec.), vers le tout rouge sans transparence.
- +
-**Game.QuitGame();** simply exits the game to Windows. +
-Of course you can find the listing of this script in the resources folder for the chapter 7.+**Game.QuitGame();** Sort tout simplement du jeu vers Windows.
-You can find a couple of related methods which we didn’t cover here in documentation under+Bien sûr vous pouvez trouver le listing de se script dans le répertoire des ressources pour le chapitre 7. 
 +Vous pouvez trouvez quelques méthodes à ce sujet que nous n'avons pas traité ici, dans  la documentation de WME sous
//Contents -> Scripting in WME -> Script Language Reference -> Game Object in the section Responses / Inventory// //Contents -> Scripting in WME -> Script Language Reference -> Game Object in the section Responses / Inventory//
-And that concludes this chapter but don’t worry. There is a lor of exciting stuff to come.+Et ça conclu ce chapitre, mais ne vous en faites pas, Il y a beaucoup de choses passionnantes à venir.
 
fr/wmebook/ch7.1319120671.txt.gz · Last modified: 2011/10/20 16:24 by Anto0085
Recent changes RSS feed Creative Commons License Driven by DokuWiki