Differences

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


fr:wmebook:ch2 2011/10/18 13:13 fr:wmebook:ch2 2011/10/19 13:12 current
Line 118: Line 118:
-====== 2.1 Les tableaux magiques ======+ 
 +====== 2.1. Les tableaux magiques ======
Avant de commencer à parler de tableaux, je vais vous donner un exemple d'un réel problème dans les jeu. Imaginez que vous ayez une porte protégée par digicode. vous devez tapez les 4 chiffres correctement pour que la porte s'ouvre. Vous avez différentes façons de faire cela. Commençons par la pire: Avant de commencer à parler de tableaux, je vais vous donner un exemple d'un réel problème dans les jeu. Imaginez que vous ayez une porte protégée par digicode. vous devez tapez les 4 chiffres correctement pour que la porte s'ouvre. Vous avez différentes façons de faire cela. Commençons par la pire:
Line 224: Line 225:
-====== 2.2 les Conditions ======+ 
 + 
 +====== 2.2. Les Conditions ======
Habituellement nous savons ou nous allons. Nous avons parlé précédemment de l’exemple d'une porte et d'un bouton, nous avons perler de tester si le bouton etait appuyé. Mais comment faire ce test? Nous avons une commande de condition appelé **if** (si) qui le fait pour nous. Encore une fois commençons par du code: Habituellement nous savons ou nous allons. Nous avons parlé précédemment de l’exemple d'une porte et d'un bouton, nous avons perler de tester si le bouton etait appuyé. Mais comment faire ce test? Nous avons une commande de condition appelé **if** (si) qui le fait pour nous. Encore une fois commençons par du code:
Line 507: Line 510:
-====== 2.6. Objects ====== 
-Last chapter is dedicated to the very cool part of WME scripting language – objects. 
-We’ll start slowly with the following thought. Imagine that you have some real world object. Let’s say a table. Now the term table is pretty abstract - It can be made out of plastic, wood, metal or whatever, it can have many colors, it can be expensive or cheap. Wouldn’t it be nice to have all information about such a table together?+ 
 + 
 +====== 2.6. Les Objets ====== 
 + 
 +Le dernier chapitre est dédié à un parie vraiment cool du langage de programmation de WME - Les Objets. 
 + 
 +Nous allons démarrer doucement avec la réflexion suivante. Imaginez que vous ayez un objet du monde réel. disons une table. Évidemment le terme table est plutôt abstrait - elle peut être faite de plastique, bois, métal ou autre, elle peut avoir plusieurs couleurs, elle peut être chère ou pas. Ça serais pas génial d'avoir toutes les informations sur cette table ensembles?
<code script> <code script>
var table; var table;
-table.Material = "wood"; +table.Material = "bois"; 
-table.Color = "black";+table.Color = "noire";
table.Price = 100; table.Price = 100;
Line 523: Line 530:
</code> </code>
-What we’ve done here is that we’ve defined a variable, but instead of accessing this variable directly, we set a couple of //Attributes// to this variable. We no longer use the variable as a simple container. It became an object for us.+Ce que nous avons fait ici est que nous avons défini une variable, mais au lieu d’accéder directement a cette variable, nous avons défini quelques //Attributs// à cette variable. Nous ne pouvons plus utiliser la variable comme une simple boite. Elle est devenue un objet pour nous.
-Now you’re surely thinking “It’s all nice and everything, but what if we have 10 tables. Do we need 10 variables and declare them like this? It would be messy again”.+Maintenant vous devez certainement penser "C'est bien beau tout ça, mais comment faire si nous avons 10 tables. Avons-nous besoin de 10 variables et de les déclarer comme ça? Ça sera de nouveau le bazar".
-Well, the magic of the objects is not only in //Attributes//, but also in **methods**. Method is normal function, which belongs to the object. All the time you’re using Game.Msg and now you've just discovered, that this is method of the object Game. The shocking revelation is, that almost everything you’ll be accessing from the WME side is object oriented and thus you’ll meet your fair share of objects for sure. +Bon, la magie des Objets n'est pas seulement dans les //attributs//, mais aussi dans les **méthodes**. Une méthode c'est une fonction normale, qui appartient à l'objet. Toutes les fois que vous avez utilisé Game.Msg et seulement maintenant vous découvrez, que c'est une méthode de l'objet Game. Le pire est, que presque tout ce dont vous aurez accès du côté de WME est orienté objet et c'est sûr vous allez rencontrer votre dose d'objets.
-But let’s get back to our task at hand – how do we actually define an object to be more versatile then only a couple of Attributes?+Mais revenons à notre tâche en cours - comment pouvons-nous réellement définir un objet pour être plus souple qui as seulement quelques attributs?
-First we’ll create an object definition file. Let’s call it table.script.+Premièrement nous allons créer un fichier de définition d'objet. appelons-le table.script.
<code script> <code script>
Line 544: Line 551:
</code> </code>
-//**Syntax rule no. 5** +//**Règle de syntaxe no. 5** 
-If we want to access attribute or method of an object, we use dot as seen in the previous example.//+Si nous voulons accéder à un attribut ou une méthode d'un objet, nous utilisons le point comme vu dans l'exemple précédent.//
-As we see here, we’re inside of the object so we can no longer use table.Material etc. because we don’t know how the variable holding our table will be called. That’s why we have a special identificator called **this** which points to the object itself. This way it will always set the attribute to the correct variable.+Comme nous le voyons là, nous sommes à l’intérieur de l'objet donc on ne peut plus utiliser table.Material etc... parce que nous ne savons pas comment la variable englobant notre table sera appelée. C'est pourquoi nous avons un identifiant spécial appelé **this** qui pointe sur l'objet lui-même. De cette façon ça définira toujours l'attribut à la bonne variable.
-In the script we want to create such an object, we have to first create it:+Dans le script nous voulons créer un tel objet, nous devons d’abord le créer:
<code script> <code script>
Line 555: Line 562:
</code> </code>
-and then we can setup object's properties through+et puis nous pouvons configurer les propriétés de l'objet ainsi
<code script> <code script>
-table.initialize("wood","black",100);+table.initialize("bois","noire",100);
</code> </code>
-This already looks much more flexible, but we can go one more step further. Let’s say we’re going to create a game about a table seller who will have 10 different tables. Why not use an array for them?+Cela paraît déjà beaucoup plus souple, mais nous pouvons aller encore un peu plus loin. Disons que nous allons créer un jeu sur un vendeur de table qui aura 10 tables différentes. Pourquoi ne pas utiliser un tableau pour elles?
<code script> <code script>
Line 570: Line 577:
</code> </code>
-But here’s a pitfall! You can’t do something like: **tables[a].initialize();** because WME doesn’t support dot notation for arrays or nested objects. Also you can’t make something like **Game.Scene.SomeAttribute** because WME supports only one dot nesting. But there’s a workaround through temporary variable. +Mais voilà il y a un piège! Vous ne pouvez pas faire quelque chose comme: **tables[a].initialize();** parce WME ne supporte pas la notation de point pour tableaux ou des objets imbriqués. Pas plus que vous ne pouvez pas faire quelque chose comme Game.Scene.SomeAttribute parce WME ne supporte qu'un seul point imbrication. Mais il y a une solution de contournement grâce à la variable temporaire.
-The first case would be rewritten as:+ 
 +Le premier cas serait réécrit comme:
<code script> <code script>
var tmp = tables[a]; var tmp = tables[a];
-tmp.initialize("wood","black",100);+tmp.initialize("bois","noire",100);
</code> </code>
-and the other like:+et l'autre comme:
<code script> <code script>
Line 585: Line 593:
</code> </code>
-I think that this should be enough to get you started with scripting. The rest is just an application of what you have just learned. I’m sure that you’ll have no problems understanding what’s going on now. +Je pense que cela devrait être suffisant pour vous permettre de commencer avec les scripts. Le reste est juste une application de ce que vous venez d'apprendre. Je suis sûr que vous n'aurez aucune difficulté à comprendre ce qui se passe maintenant.
 
fr/wmebook/ch2.1318936401.txt.gz · Last modified: 2011/10/18 13:13 by Anto0085
Recent changes RSS feed Creative Commons License Driven by DokuWiki