Skip to content
This repository was archived by the owner on Jan 18, 2019. It is now read-only.

Commit 71ec57b

Browse files
committed
Add step3 in french.
Signed-off-by: Yoan Blanc <[email protected]>
1 parent 3e1a572 commit 71ec57b

File tree

1 file changed

+98
-0
lines changed

1 file changed

+98
-0
lines changed
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
---
2+
title: Création des plateformes
3+
layout: guide_step_fr.pug
4+
download: /assets/platformer/steps/step03.js
5+
---
6+
7+
Un jeu de plateforme à besoin de... plateformes, juste? Il existe plusieurs techniques pour gérer des plateformes and la physique y relative. Dans cet atelier, nous allons considérer les plateformes comme des **sprites**, comme n'importe quel autre caractère dans le jeu.
8+
9+
<small>Si c'est la méthode la plus simple, c'est loin d'être la plus efficace.</small>
10+
11+
Une plateforme de taille 4×1 et 1×1 ressembleront à ceci.
12+
13+
![4x1 grass platform](/assets/platformer/grass_4x1.png) ![1x1 grass platform](/assets/platformer/grass_1x1.png)
14+
15+
Comme pour les images, il y a une méthode pour créer des _sprites_ (dans ce cas des `Phaser.Sprite`) et les ajouter automatiquement
16+
17+
Comment séparer la logique du jeu, d'une carte et de notre jeu? L'idée est d'utiliser des fichiers **JSON** représentant chaque niveau. Le répertoire `data` en contient deux pour débuter.
18+
19+
<small>Idéalement ces fichiers sont à générer à l'aide d'un éditeur <em>ad hoc</em>, tel que Tiled.</small>
20+
21+
Si vous ouvrez un de ces fichiers, on peut y voir les plateformes stockées dans un tableau (`[]`).
22+
23+
```javascript
24+
{
25+
"platforms": [
26+
{"image": "ground", "x": 0, "y": 546},
27+
{"image": "grass:4x1", "x": 420, "y": 420}
28+
],
29+
// ....
30+
}
31+
```
32+
33+
# Tâches
34+
35+
## Charger les données des niveaux
36+
37+
1. Phaser considère les fichiers JSON comme un type d'asset, tel qu'une image. Nous devons donc précharger le fichier de manière similaire.
38+
39+
```javascript
40+
PlayState.preload = function () {
41+
// ...
42+
this.game.load.json('level:1', 'data/level01.json');
43+
};
44+
```
45+
46+
Comme pour l'image, on donne un nom à l'élément pour pouvoir s'en reservir par la suite.
47+
48+
2. À présent, pour pouvons y accéder dans l'étape `create`.
49+
50+
```javascript
51+
PlayState.create = function () {
52+
//...
53+
this.loadLevel(this.game.cache.getJSON('level:1'));
54+
};
55+
56+
PlayState.loadLevel = function (data) {
57+
console.log(data);
58+
};
59+
```
60+
61+
`console.log()` va afficher le contenu du niveau dans la console du développeur qu'on peut afficher depuis la touche F12 du navigateur.
62+
63+
## Dessiner les plateformes à l'aide de _sprites_
64+
65+
1. Avant de créer les _sprites_, nous devons précharger toutes les images requises. Et ceci, va dans l'étape `preload`.
66+
67+
```javascript
68+
PlayState.preload = function () {
69+
// ...
70+
this.game.load.image('ground', 'images/ground.png');
71+
this.game.load.image('grass:8x1', 'images/grass_8x1.png');
72+
this.game.load.image('grass:6x1', 'images/grass_6x1.png');
73+
this.game.load.image('grass:4x1', 'images/grass_4x1.png');
74+
this.game.load.image('grass:2x1', 'images/grass_2x1.png');
75+
this.game.load.image('grass:1x1', 'images/grass_1x1.png');
76+
};
77+
```
78+
79+
2. À présent, nous pouvons compléter la méthode de chargement du niveau `loadLevel` afin de dessiner les plateformes. Le tableau de plateformes se parcourse à l'aide d'un `forEach`. Le `this` tout seul est lié à comment JavaScript fonctionne en interne.
80+
81+
```javascript
82+
PlayState.loadLevel = function (data) {
83+
data.platforms.forEach(this.spawnPlatform, this);
84+
};
85+
86+
PlayState.spawnPlatform = function(platform) {
87+
this.game.add.sprite(platform.x, platform.y, platform.image);
88+
};
89+
```
90+
91+
Rafraîchir le navigateur va laisser apparaître les plateformes à l'écran.
92+
93+
![Des plateformes](/assets/platformer/step02_check.png)
94+
95+
# Vérifications
96+
97+
- Vous pouvez voir les plateformes dessinées sur la fond d'écran;
98+
- Assurez-vous de bien utiliser `game.add.sprite` et non `game.add.image`.

0 commit comments

Comments
 (0)