Differences

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


fr:wmebook:ch4 2011/10/19 16:08 fr:wmebook:ch4 2011/10/19 17:33 current
Line 105: Line 105:
</code> </code>
-** ------------------------------------------ 
-          EN COURS DE TRADUCTION 
--------------------------------------------** 
Quand nous cliquons avec le bouton droit dans la scène, on regarde en premier si le clique était sur un Hot-spot. WME sait s'il y a un hot-spot sous le pointeur de la souris et remplit l'attribut **ActiveObject**en conséquence. Quand nous cliquons avec le bouton droit dans la scène, on regarde en premier si le clique était sur un Hot-spot. WME sait s'il y a un hot-spot sous le pointeur de la souris et remplit l'attribut **ActiveObject**en conséquence.
Nous avons, maintenant, réduit notre logique à deux états. Si nous avons cliqué sur un objet, nous allons appelé sont événement “LeftClick”. Ça nous ramène à nos essais dans le dernier chapitre, où nous avons attribué l'événement “LeftClick” de la porte. C'est la raison pour laquelle cet événement s'est appelé en premier. **ApplyEvent** c'est une méthode qui est utilisée pour lancer des événements manuellement. Nous avons, maintenant, réduit notre logique à deux états. Si nous avons cliqué sur un objet, nous allons appelé sont événement “LeftClick”. Ça nous ramène à nos essais dans le dernier chapitre, où nous avons attribué l'événement “LeftClick” de la porte. C'est la raison pour laquelle cet événement s'est appelé en premier. **ApplyEvent** c'est une méthode qui est utilisée pour lancer des événements manuellement.
-Si on clique n'inporte où ( +Si on clique n’importe où (Pas de hot-spot sous le pointeur), l'événement de la scène "LeftClick" est déclenché. Là, j'ai cru vous entendre crier : " Attends un peu, c'est quoi l’événement de la scène “LeftClick”?!".
-If we clicked elsewhere (no hotspot under cursor), scene “LeftClick” event is fired. I almost hear you scream now: “Wait a minute. What is a scene “LeftClick” event?!".+
-This is another trick by WME which comes out of Scene template. If you create a new scene, or open your room scene in scene edit and switch to the //Properties tab// and click on the **"Scripts..."** button, you’ll see that there are two scripts attached. Your favorite scene_init.script and scripts/scene.script. And since this is the template every single scene uses, let’s uncover what dark mysteries this file holds?+C'est une autre astuce de WME qui sort du modèle de scène (Scene template). Si vous créez une nouvelle scène, ou vous ouvrez votre salle de la scène dans l’éditeur de scène et que vous allez dans //l'onglet Properties// et que vous cliquez sur le bouton **"Scripts..."**, vous allez voir qu'il y a deux scripts attachés. Votre scene_init.script préféré et scripts/scene.script. et comme c'est le modèle que chaque scène utilise, découvrons ce sombre mystère que contient ce fichier?    
<code script> <code script>
Line 125: Line 121:
</code> </code>
-HA! That’s it. if this event is fired, our actor goes to the current mouse position in the scene. So it boils down to the simple thing: If we click on a hotspot it’s left click is fired else our actor walks to the current mouse position. And that’s about the LeftClicks for now.+HA! C'est ça. Si cet évenement est déclenché, notre acteur va à la position actuelle de la souris dans la scene. Donc pour resumer avec des choses simples: Si on clique sur un hot-spot c'est le "left click" qui est declenché alors notre acteur marche vers la position courante de la souris. Et c'est juste le clique gauche pour le moment.
-Let’s move on to the next event “RightClick” and erase the whole block. We don’t need it now and it would only make our head spin.+Déplaçons nous vers l’événement suivant “RightClick” et effacez le bloc entier. Nous n'en avons pas besoin tout suite et ne ferais que vous faire tourner la tête.
-Last two events (“Keypress” and “QuitGame”) deals with menu displaying and handling the alt+f4 combo. We don’t have to bother ourselves with it for now, but rest assured, that we’ll look into them soon too.+Les deux derniers événement (“Keypress” et “QuitGame”) fonctionnent avec les menus d'affichage et la manipulation des combinaison de touches Alt + F4. Nous n'avons pas à nous embêter avec elle pour l'instant, mais rassurez-vous, nous allons les voir rapidement aussi.
-Let’s recap new methods and attributes we learned so far in this chapter:+Récapitulons les nouvelles méthodes et les attributs que nous avons appris jusqu'à présent dans ce chapitre:
-**var window = Game.LoadWindow(window filename);**  - Loads a window definition, attaches it to the Game object and optionally returns a reference to it (in this case to window variable+**var window = Game.LoadWindow(window filename);**  - Charge une définition de fenêtre, qu'il attache à l'objet Game et lui retourne éventuellement un référence (dans ce cas à la variable window) 
-**window.Visible = true / false;** - Makes the loaded window visible/invisible on the screen +**window.Visible = true / false;** - Fait que la fenêtre chargée est visible/invisible à l'écran. 
-**window.GetContro(controlname);** - Returns a reference to a control stored in the window +**window.GetContro(controlname);** - Retourne une référence à un contrôle se trouvant dans la fenêtre. 
-**Game.LoadActor(actor filename);** - Loads an actor from file and attaches it to a game object+**Game.LoadActor(actor filename);** - Charge un acteur d'un fichier et l'attache à l'objet Game
-**Scene.LoadActor(actor filename);** - Loads an actor from file and attaches it to a scene object destroying it after the scene is left+**Scene.LoadActor(actor filename);** - Charge un acteur d'un fichier et l'attache à un objet scène se détruisant après avoir quitter la scène
-**Game.MainObject = actor;** Sets the actor to whom the scene scrolling is synchronized+**Game.MainObject = actor;** Défini vers quel acteur le défilement de la scène est synchronisé
-**Game.ActiveObject;** - stores the reference to an object your mouse cursor is currently over+**Game.ActiveObject;** - Stocke la reference de l'objet au dessus duquel votre souris se trouve
-**Game.ApplyEvent(eventName);** - is a method which fires the event associated to the Game object +**Game.ApplyEvent(eventName);** - c'est une méthode qui déclenche les événements associés à l'objet Game. 
-**Scene.ApplyEvent(eventName);** - is a method which fires the event associated to the Scene object +**Scene.ApplyEvent(eventName);** - C'est une méthode qui déclenche les événements associés à un objet scène. 
-**Node.ApplyEvent(eventName);** - is a method which fires the event associated to the node stored in the object in question.+**Node.ApplyEvent(eventName);** - C'est une méthode qui déclenche les événements associés au nœud (entité) stocké dans l'objet en question.
-For better understanding the last command, we could easily run in our last chapter the “LeftClick” event of the door elsewhere like this:+Pour mieux comprendre la dernière commande, nous pourrions facilement nous précipiter dans notre dernier chapitre à l’événement “LeftClick” de notre porte qui était comme ceci:
<code script> <code script>
Line 151: Line 147:
</code> </code>
-I hope you got my point now... Let’s also look if you have the same *game.script* file as I do before we proceed:+J'espère que vous voyez ce que je veux dire maintenant ... Examinons maintenant si vous avez le même fichier **game.script** que j'ai fait avant que nous commencions:
<code script> <code script>
Line 223: Line 219:
</code> </code>
-Now test the game and you’ll see that it’s still running although we made quite some changes to it. And as we want to continue boiling our example game down to the necessary minimum, we need to look at the **game_loop.script** (formerly named game_daemon.script) as well.+Maintenant testons le jeu et regardons s'il fonctionne encore vu que nous avons fait quelques changement. Et comme nous voulons continuer à epuré notre jeu au strict minimum, nous devons voir dans **game_loop.script** (Ancienement nommé game_daemon.script)
<code script> <code script>
Line 232: Line 228:
</code> </code>
-We can easily delete the line **global WinMenu;** because we’ve already dropped the idea of right click menu.+Nous pouvons tranquillement effacer la ligne **global WinMenu;** parce que nous avons déjà abandonné l'idée de menu clic droit.
<code script> <code script>
Line 238: Line 234:
</code> </code>
-This will be always true. This way we are looking at the infinite loop. To end this loop, one would have to call //Game.DetachScript("scripts\game_loop.script");//+Ça sera toujours vrai. avec ça nous envisageons une boucle sans fin. Pour clore cette boucle, on aurait pu faire appel //Game.DetachScript("scripts\game_loop.script");//
<code script> <code script>
var ActObj = Game.ActiveObject; var ActObj = Game.ActiveObject;
</code> </code>
-We’ve seen exactly the same line before in the game script.+Nous avons vu exactement la même ligne dans le game script
<code script> <code script>
Line 250: Line 246:
</code> </code>
-So first we test if the game is interactive and our mouse cursor is over some active object. But we’ll make this condition a bit simpler so we’ll put away all inventory items logic and it’ll look like this:+D'abord on test si le jeu est interactif et que notre souris est au dessus d'un objet actif. Mais nous allons rendre cette condition un peu plus simple, donc nous allons mettre de côté toute logique d'inventaire d'éléments et ça va ressembler à ceci:
<code script> <code script>
Line 270: Line 266:
</code> </code>
-So what happens if we have our mouse over the object?+Du coup que ce passe t'il si on a notre souris au dessus l'objet?
<code script> <code script>
Line 277: Line 273:
</code> </code>
-WinCaption contains the reference to the text field inside of the caption window loaded in the game script. We set its position to the same coordinates as our mouse X-position and Mouse Y-position + 20 so it’ll be 20 pixels below.+WinCaption contient les références au champs de texte à l'intérieur de la fenêtre des légendes chargés dans le script du jeu. Nous avons fixé sa position aux mêmes coordonnées que la position en X de la souris et la position en Y de la souris + 20 donc la légende sera 20 pixels en-dessous.
<code script> <code script>
Line 284: Line 280:
</code> </code>
-Then we set text aligning to left and set the text of the caption to the node caption as defined in the scene editor.+Ensuite, nous avons défini l'alignement du texte à gauche et mis le texte de la légende dans le nœud légende (node caption) comme défini dans l'éditeur de scène.
<code script> <code script>
Line 290: Line 286:
</code> </code>
-We resize the caption so its size is the same as the size of the displayed text.+Nous redimensionnons la légende pour que sa taille soit la même que la taille du texte affiché.
<code script> <code script>
Line 296: Line 292:
</code> </code>
-If the caption width however extends out of the screen, we set our caption X-position to end exactly with the screen border (based on the resolution).+Si la largeur de légendes s'étend toutefois hors de l'écran, nous avons réglé notre position X de la légende pour finir exactement à la frontière de l'écran (basé sur la résolution).
<code script> <code script>
Line 302: Line 298:
</code> </code>
-We do the same with the height and the bottom border.+Nous faisons pareil  avec la hauteur et la bas de l’écran.
<code script> <code script>
Line 309: Line 305:
</code> </code>
-We display our caption by making it visible and give it focus, which is in this case not necessary, because we don’t interact with it. So we can simply delete this line too.+Nous affichons notre légende en la rendant visible et la mettre en évidence, ce qui est dans ce cas pas nécessaire, parce que nous n’interagissons pas avec elle. Donc on peut simplement effacé cette ligne aussi.
<code script> <code script>
Line 316: Line 312:
</code> </code>
-The rest means that either the game went into non interactive mode or we moved our mouse out of any active hotspots. In both cases we simply hide the caption.+Le reste signifie soit que le jeu est passé en mode non-interactif ou soit nous avons déplacé notre souris hors de tout hot-spots actifs. Dans les deux cas nous avons tout simplement cacher la légende.
<code script> <code script>
Line 323: Line 319:
</code> </code>
-Those two lines deal with inventory showing / disappearing and so we simply delete them.+Ces deux ligne concerne l'apparition/disparition de l'inventaire et on peut donc les effacer.
<code script> <code script>
Line 329: Line 325:
</code> </code>
-Remember what I’ve told you about infinite loops and hanging computers? Enough said+Souvenez vous ce que j'ai dis au sujet des boucles sans fin et les blocages d'ordinateur? j'en ai assez dit
-So let’s look at our revised **game_daemon.script**+Alors regardons notre **game_daemon.script** révisé.
<code script> <code script>
Line 357: Line 353:
</code> </code>
-As you can see, those are the barebones of our starting project. No inventory, no menus, simple point and click game. Moreover you understand now, what’s the brain behind the game and as we build upon it, you’ll feel more comfortable knowing that you have the rock solid background. Next step: **the actor!**+Comme vous pouvez le voir, c'est l’épure de notre projet de départ. Pas d'inventaire, pas de menus, un simple jeu Point and Click. En outre, vous comprenez maintenant, qu'est qui supervise derrière le jeu et comme nous bâtirons sur elle, vous vous sentirez plus à l'aise en sachant que vous avez une base solide comme la roche. Prochaine étape: **les acteurs!**
 
fr/wmebook/ch4.1319033330.txt.gz · Last modified: 2011/10/19 16:08 by Anto0085
Recent changes RSS feed Creative Commons License Driven by DokuWiki