Differences

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


fr:wmebook:ch3 2011/10/19 11:49 fr:wmebook:ch3 2011/10/25 13:49 current
Line 1: Line 1:
-====== 3. Premier tour dans les entrailles de WME ======+====== 3. Premier pas dans les entrailles de WME ======
Nous avons découvert les outils et nous avons appris les bases du script, il maintenant temps de voir comment ces connaissances s'applique à la conception d'un jeu. Avant de commencer ce tour nous allons d'abord faire un bref survol des types de fichiers que vous allez utiliser dans WME (et je recommande fortement d'utiliser cette convention de nomination): Nous avons découvert les outils et nous avons appris les bases du script, il maintenant temps de voir comment ces connaissances s'applique à la conception d'un jeu. Avant de commencer ce tour nous allons d'abord faire un bref survol des types de fichiers que vous allez utiliser dans WME (et je recommande fortement d'utiliser cette convention de nomination):
Line 291: Line 291:
Premièrement nous allons créer le nouveau script dans le répertoire scr (à partir d'un modèle vierge (Empty template) ) et le nommer **bomb.script**. Premièrement nous allons créer le nouveau script dans le répertoire scr (à partir d'un modèle vierge (Empty template) ) et le nommer **bomb.script**.
-**----------------------------------------------------------------  TRADUCTION EN COURS  --------------------------------------------------------------------------**+
Astuce : si vous êtes plus expérimenté, vous pouvez ajouter les nouveaux fichiers manuellement en créant un fichier texte avec une extension script créé dans le dossier correspondant. Astuce : si vous êtes plus expérimenté, vous pouvez ajouter les nouveaux fichiers manuellement en créant un fichier texte avec une extension script créé dans le dossier correspondant.
Line 310: Line 310:
</code> </code>
-J'ai mises en valeur la ligne qui attache notre nouveau script et donc démarre le compte à rebours. +J'ai ajouté la ligne qui attache notre nouveau script et donc démarre le compte à rebours. 
- +Maintenant regardons le contenu de **bomb.script**.
-Now let’s look at the **bomb.script** contents.+
<code script> <code script>
#include "scripts\base.inc" #include "scripts\base.inc"
-for (var timer=6;timer>-1;timer = timer -1)  // let's set up a loop which would go down from 6 to 0.+for (var timer=6;timer>-1;timer = timer -1)  // Mettons en place une boucle qui passerait de 6 à 0.
{ {
- Game.Msg("Countdown: " + timer); //Let's display how much time do we have left. + Game.Msg("compte à rebours: " + timer); //Affichons combien de temps il nous reste 
- Sleep(1000); // Sleep one second (and also hand the game over to other threads)+ Sleep(1000); // Pause une seconde (et laisse aussi la main au jeu pour d'autres tâches)
} }
-Game.Interactive = false; //Death cutsene +Game.Interactive = false; //Scène de la mort 
-actor.Talk("I've just died. Let's try again");+actor.Talk("J'suis mort. Essayez encore.");
Game.ChangeScene("scenes\warehouse\warehouse.scene"); Game.ChangeScene("scenes\warehouse\warehouse.scene");
var door = Scene.GetNode("Door"); var door = Scene.GetNode("Door");
-door.Active = true; // If we die, we need to return the door to its active state or we'll never discover the bomb again.+door.Active = true; // Si nous mourons, nous avons besoin de remettre la porte à son état actif ou nous ne pourrons pas découvrir la bombe de nouveau.
Game.Interactive = true; Game.Interactive = true;
</code> </code>
-And the last change we’ll make is to the **exit.script**. If we found an exit in time, actor will be able to escape, but what if he arrives there in the nick of time and while talking his line, the time runs away and he dies? So let’s prevent this from happening by detaching the bomb script and letting him say something more reasonable.+Et le dernier changement que nous allons faire est dans **exit.script**. Si vous trouvez la sortie à temps, l'acteur doit pouvoir s’échapper, mais s'il y arrive juste à temps et tout en disant sa ligne, le temps passe et qu'il meurt? Alors nous allons éviter cela en détachant le script de la bombe et le laisser parler ça serait quelque chose de plus raisonnable.
-So the contents of the **exit.script** would look like this:+Donc le contenu de **exit.script** devrait ressembler à ça:
<code script> <code script>
Line 344: Line 343:
if (door.Active) if (door.Active)
{ {
- actor.Talk("I don't want to return to my flat before I am sure I can't enter the warehouse!");+ actor.Talk("Je ne veux pas retourner à mon appart avant d’être sûr que je ne peux pas entrer dans l'entrepôt!");
} }
else else
{ {
Scene.DetachScript("scenes\warehouse\scr\bomb.script"); Scene.DetachScript("scenes\warehouse\scr\bomb.script");
- actor.Talk("Phew. That was close");+ actor.Talk("Ouf. C'était juste");
Game.ChangeScene("scenes\room\room.scene"); Game.ChangeScene("scenes\room\room.scene");
} }
Line 356: Line 355:
</code> </code>
-Save everything and test our little scheme to see some more of the effects.+Sauvegardez tout et testez notre petit système pour voir un peu plus sur les effets.
-On closing of this chapter I’ll introduce a little change to our scheme. This change is not necessary in our example, but it will be necessary in different case. For now we’re testing, if the entity region Door is Active for another decision. But what if we need to apply the similar logic to more than one scene? If we stand in different scene, we logically can’t use entity this way because it’s not anymore part of the current scene.+Pour clore ce chapitre je vais ajouter un petit changement à notre système. Ce changement n'est pas nécessaire dans notre exemple, mais il le serais dans d'autres cas. Pour le moment nous avons testé, si l'entité région door est active pour prendre une décision. Mais que faire si nous avons besoin d'appliquer cette même logique sur plus d'une scène? Si nous nous tenons dans une scène différentes, logiquement nous ne pouvons pas utiliser une entité de cette façon parce qu'elle ne fait plus partie de la scène courante.
-So what we can do is using a global variable. Let’s make a change to our scripts then+Donc ce que nous pouvons faire c'est d'utiliser une variable globale. Faisons un changement dans nos scripts alors
-Last code listing for this script triplet is then (changes in bold):+ 
 +Ainsi la derniere liste de code de ce triplet de script sera :
**bomb.script** **bomb.script**
Line 367: Line 367:
#include "scripts\base.inc" #include "scripts\base.inc"
-for (var timer=6;timer>-1;timer = timer -1)  // let's set up a loop which would go down from 6 to 0.+for (var timer=6;timer>-1;timer = timer -1)  // Mettons en place une boucle qui passerait de 6 à 0.
{ {
- Game.Msg("Countdown: " + timer); //Let's display how much time do we have left. + Game.Msg("compte à rebours: " + timer); //Affichons combien de temps il nous reste 
- Sleep(1000); // Sleep one second (and also hand the game over to other threads)+ Sleep(1000); // Pause une seconde (et laisse aussi la main au jeu pour d'autres tâches)
} }
-Game.Interactive = false; //Death cutsene +Game.Interactive = false; //Scène de la mort 
-actor.Talk("I've just died. Let's try again");+actor.Talk("J'suis mort. Essayez encore.");
var door = Scene.GetNode("Door"); var door = Scene.GetNode("Door");
-door.Active = true; // If we die, we need to return the door to its active state or we'll never discover the bomb again.+door.Active = true; // Si nous mourons, nous avons besoin de remettre la porte à son état actif ou nous ne pourrons pas découvrir la bombe de nouveau.
global doorClicked = false; global doorClicked = false;
Game.ChangeScene("scenes\warehouse\warehouse.scene"); Game.ChangeScene("scenes\warehouse\warehouse.scene");
Line 388: Line 388:
on "LeftClick"  on "LeftClick" 
{ {
- Game.Interactive = false;    // We want our player to make more things at once and we don't want to be interrupted.+ Game.Interactive = false;    // Nous voulons que notre joueur fasse plusieurs choses à la fois et nous ne voulons pas être interrompu.
global doorClicked = true; global doorClicked = true;
actor.GoToObject(this); actor.GoToObject(this);
- this.Active = false;  // We disable the door so the hotspot is not visible or active anymore+ this.Active = false;  // Nous désactivons la porte afin que le hot-spot ne soit plus visible ou active du tout
- actor.Talk("Oh no. There's a timed bomb attached to the door! I have to find an exit before it explodes."); + actor.Talk("Oh non. Il y a une bombe à retardement attachée à la porte! Je doit m’échapper avant qu'elle n'explose.");
Scene.AttachScript("scenes\warehouse\scr\bomb.script"); Scene.AttachScript("scenes\warehouse\scr\bomb.script");
- Game.Interactive = true; // Allow player to play some more.+ Game.Interactive = true; // Permet au joueur de jouer de nouveau.
} }
</code> </code>
Line 409: Line 409:
if (!doorClicked) if (!doorClicked)
{ {
- actor.Talk("I don't want to return to my flat before I am sure I can't enter the warehouse!");+ actor.Talk("Je ne veux pas retourner à mon appart avant d’être sûr que je ne peux pas entrer dans l'entrepôt!");
} }
else else
{ {
Scene.DetachScript("scenes\warehouse\scr\bomb.script"); Scene.DetachScript("scenes\warehouse\scr\bomb.script");
- actor.Talk("Phew. That was close");+ actor.Talk("Ouf. C'était juste");
Game.ChangeScene("scenes\room\room.scene"); Game.ChangeScene("scenes\room\room.scene");
} }
Line 421: Line 421:
</code> </code>
-We’ve seen in this chapter some neat tricks with the way how we can handle the game logic. We’ve also learned some of the important concepts for the tying scene to the code and we are able to use a couple of very basic commands and object methods. But for now we all the time used a lot of prebuilt demo code. Next chapter is all about starting the project from scratch. We’ll build upon this blank project until we create a little feature packed game. So stay tuned, we’re getting into it.+Nous avons vu dans ce chapitre quelques astuces intéressantes avec la façon dont on peut gérer la logique du jeu. Nous avons aussi appris quelques notions importantes pour lier les scène au code et nous sommes capable d'utiliser un certain nombre de commandes et de méthodes objet très basiques. Mais pour le moment nous avons tout le temps utilisé un grand nombre de codes d'une démo pré-compilés. Le prochain chapitre est au sujet du démarrage d'un projet à partir de zéro. Nous allons partir d'un projet vierge jusqu'à créer un jeu tout simple compilé. Alors restez à l'écoute, on y va.
 
fr/wmebook/ch3.1319017777.txt.gz · Last modified: 2011/10/19 11:49 by Anto0085
Recent changes RSS feed Creative Commons License Driven by DokuWiki