Solarus Wiki

A wiki for the Solarus engine community

Outils pour utilisateurs

Outils du site


fr:tutorial:houses_and_forests

Chap. 2Chap. 4Sommaire

Chapitre 3 - Maisons et forêts

Nous allons améliorer la map créée dans le chapitre précédent. Nous allons donc principalement apprendre à maîtriser les graphismes de Zelda A Link to the Past, mais avant nous allons corriger un bug.

Un jeu ne se lance qu'une fois

En effet, si vous lancez le jeu et que vous faites plusieurs fois la touche espace, le jeu se relancera à chaque fois. Pour modifier ce comportement, allez dans main.lua à la ligne 18, et rajoutez le code suivant avant le premier if :

  if game ~= nil then
    return
  end

L'opérateur ~= signifie “différent de”. On vérifie donc si la variable game a été initialisée, si c'est le cas on ne fait rien. (Notez qu'on aurait aussi pu modifier le if existant en rajoutant cette condition avant le key == space, mais bien différencier ces deux if permettra des comportements plus avancés (comme “si la partie est lancée et qu'on appuie sur la touche échap, alors on revient à l'écran titre”… ce genre de comportement qu'on ne verra pas de suite).

Compétence : Musicien

Maintenant que nous avons réglé ce petit souci, téléchargez la musique à cet endroit, il s'agit de la musique du monde de la lumière. Nous allons donner un peu de vie cette carte pour l'instant assez triste en lui rajoutant une musique, et en faisant d'elle un village. Comme pour les tilesets et les maps, il faut renseigner la musique dans l'arbre des ressources dans éditeur de quête. D'abord extrayez-la dans le dossier data/musics. Puis dans l'éditeur, clic droit sur MusicNew Music. Vous avez l'habitude : en ID vous mettez le nom du fichier (overworld) sans l'extension, en nom vous mettez ce que vous voulez, ici ce sera Overworld.

Une fois cela fait, ouvrez votre map et sélectionnez la musique nouvellement créée dans le menu à gauche. Lancez la partie, vous avez de la musique !

Compétence : Architecte

Il est temps désormais de vous atteler à votre nouveau métier : Architecte. Nous allons en effet construire une maison. Augmentez la taille de la map (commençons par du 640×480), histoire d'avoir la place de créer notre maison. Vous pouvez supprimer ce que nous avions fait dans l'exercice précédent. Nous allons utiliser le groupe de tiles suivant :

Chaque brique doit être prise bout par bout et posée. Vous remarquerez qu'il n'y a qu'un seul coin inférieur pour les deux types de maisons : c'est parce qu'il est “incolore”, contrairement aux coins supérieurs qui prennent la couleur du toit aussi. Une fois que vous aurez construit l'édifice, vous devriez avoir quelque chose qui ressemble peu ou prou à cela :

Notez que la destination que l'on voit sur le screen est la destination par défaut que j'ai déplacé devant la maison. N'oubliez pas que vous pouvez faire se chevaucher les tuiles (ma porte est construite sur un mur entier, il n'y a pas deux murs qui encadrent la porte). Si vous n'avez fait que poser les tuiles sans rien tester d'autre et que vous lancez le jeu, vous devriez avoir une maison presque parfaite. Presque, car si vous rentrez dans la porte, vous remarquerez que le héros dépasse du haut de l'encadrure de la porte. Pour éviter cela, sélectionnez le haut de la porte dans l'éditeur et faites un Clic DroitHigh Layer.

Layer ?

Une bonne occasion de vous parler des Layers, ou des Couches en français. Les maps sont composées de 3 layers : bas, intermédiaire et haut. Les layers ne communiquent pas entre eux (sauf par certains évènements spécifiques comme les jumpers ou les escaliers que l'on verra plus tard). Les entités placées sur le high layer sont affichées plus “haut” que celles placées sur l'intermédiaire, ces dernières étant elles-mêmes affichées plus “haut” que celles placées sur le low. Cela permet de donner donc un effet de profondeur. Vous remarquerez que certaines tuiles sont faites pour aller en high layer (un layer rarement atteint par le héros en temps normal), comme le haut des portes, les toits ou encore le haut des arbres. Bien sûr, le layer peut être changé, à vous de réussir à gérer vos tiles comme il faut :)

Le héros, comme toutes les entités de la map, est lui aussi placé sur layer. Si vous voulez par exemple faire en sorte que le toit soit plus haut que le héros mais qu'il ne puisse pas aller en-dessous, vous allez devoir superposer deux tuiles : une en high layer pour l'affichage, et une au layer du héros pour lui faire obstacle et donner l'illusion de la continuité. Nous allons faire cela dans la prochaine partie de ce chapitre.

Vous pouvez changer le layer par défaut de chaque tile dans les tilesets. Ouvrez le tileset du Monde Extérieur et cliquez sur le haut de porte que nous avons modifié. Dans les options à gauche vous voyez que la valeur pour Default Layer est à Low. Si vous le changez en High alors vous n'aurez plus à vous soucier de changer manuellement cet élément de layer à chaque fois que vous créez une porte de maison.

Nous reviendrons sur la modification du tileset plus en profondeur en fin de chapitre.

Compétence : Garde-champêtre

Nous avons une maison, pourquoi ne pas faire une forêt un peu plus belle que les trois arbustes que nous avions fait auparavant ? L'occasion de voir la construction des arbres complets. Vous remarquerez que les arbres ne sont pas en un seul bloc mais comme les maisons, sont divisés en plein de petits blocs. Ces blocs sont là pour une raison : vous pouvez faire des forêts plus facilement. Prenons cet arbre :

Comme vous pouvez le constater, il est découpé en trois colonnes. Grâce à ça, vous pouvez utiliser l'astuce de la lignée de sprites. Niveau hauteur, vous pouvez aussi les faire se chevaucher facilement (c'est ce que nous allons faire), là encore sans avoir à surcharger la map avec des graphismes inutiles (pour les pieds d'arbre). Tout a une utilité, et même si parfois c'est fastidieux d'en créer un, une fois qu'il est créé vous n'avez qu'à le copier coller pour en faire un autre, et ça devient très rapide et la personnalisation de votre map efficace. Faites donc une forêt sous votre maison qui ressemble à ça :

Si vous n'avez fait que poser les arbres et que vous lancez le jeu, vous allez avoir une nouvelle surprise. Allez dans cette forêt : vous pouvez traverser les troncs. C'est le principe que nous avons vu juste avant : vous avez mis des tiles sur le high layer pour s'afficher “au dessus” du héros, sauf qu'aucun obstacle n'est en dessous pour lui faire barrage. Cela peut être volontaire, mais en général on va l'assimiler à un bug (car on imagine que le feuillage est sur un tronc). Pour cela, vous remarquerez une tuile immense au dessus des arbres, toute noire. Il s'agit d'une tuile prévue à cet effet, qui fait pile la taille d'un arbre. Elle peut être utilisée à d'autres fins, comme pour faire le blocage d'une maison dont le toit est en high layer.

Voici donc à quoi ressemble la map si l'on n'affiche pas le high layer (décochez pour cela l'option high layer).

Compétence : Pataugeur

Nous allons entamer la dernière partie de ce tutoriel d'un point de vue map : les tuiles animées. Pour cela, rien ne vaut un peu d'eau (et après tout, il faut bien que ces arbres puissent boire !). Nous allons donc faire une mare près de la maison. Le joueur ne sachant pas encore nager, ce sera une mare où le besoin de nager ne se fait pas sentir, ce sera plus pour patauger. Voici les tiles dont nous aurons besoin. Elles sont toutes plus ou moins dans le même coin du tileset (en haut à gauche).

Commencez par faire le contour de votre mare avec les tiles du bas. Cela peut sembler un peu hasardeux car les tiles ne se correspondent pas parfaitement depuis leur bord, il faut jouer avec le bottom/top pour en mettre certaines plus basses que d'autres. Une fois le contour fait, la première tile (le carré bleu clair uni) sert pour le remplissage et les deux autres (divisées en trois parties) sont les fameuses tiles animées. Voici un exemple de ce que vous pouvez faire :

Gestion des tiles

Il est temps maintenant de vous expliquer un peu plus en détail la gestion des tiles dans les tilesets. Ouvrez le tileset Monde Extérieur. Cliquez sur un élément : dans les propriétés à gauche vous pouvez voir les caractéristiques de la tile sélectionnée. La propriété Obstacle (renommée en Ground dans Solarus 1.1), désigne le type de terrain de votre tile. Cela devient beaucoup plus parlant lorsque vous faites un clic droit sur la tile à droite :

Les options sont assez parlantes d'elles-mêmes, le côté “brique” représente l'obstacle (le héros ne peut le traverser), le vert représente de la terre ferme, le bleu clair de l'eau où l'on patauge et le bleu foncé de l'eau où l'on doit nager. Hole (trou) : on y tombe, Ladder (échelle) : on marche moins vite, Prickles : on est blessé mais on reste sur place et enfin Lava : on est blessé et on a l'animation de noyade (donc on revient d'où on est tombé).

Version 1.1+

A partir de la version 1.1 de l'éditeur, les icônes ont changé afin d'utiliser des graphismes libres, et deux nouveaux types de terrain sont disponibles : Low wall (muret) et Ice (glace).

Animation indique si la tile est animée (si oui quel type d'animation). Là il faut que vous fassiez des tests pour comprendre chaque type d'animation, les plus évidents étant les animations en 3 étapes (1-2-3-1 ou 1-2-3-2-1, respectivement “dès que t'as fini la troisième étape reviens à la première” et “dès que t'as fini la troisième étape reviens à la deuxième puis à la première”). Bien sûr pour ces animations en trois étapes, il faut que la largeur ou la hauteur de la tile sélectionnée soit divisible par 3.

Enfin, on a déjà vu à quoi servait la dernière option, le Default layer. Lorsque vous placerez la tile sur une map, c'est le layer qui lui sera attribué initialement, mais vous aurez toujours la possibilité de le changer.

Pour créer une nouvelle tile dans votre tileset, rien de plus simple : sélectionnez la tile à la dimension voulue avec votre souris. Si vous empiétez sur une tile déjà existante, vous ne pourrez pas finir la sélection (cadre rouge), sinon dès que vous avez entouré la tile qu'il vous faut vous relâchez et la tile est créée (en obstacle ou non dans un premier temps mais c'est changeable).

Exercice

Maintenant que vous avez toutes ces connaissances, vous pouvez créer un hameau de trois maisons dans une map de 1024×768. Une forêt impénétrable se trouvera au sud, les autres bords de la map devront rester dégagés, à l'ouest se trouvera une mare qui prendra la moitié en hauteur de la map et n'ira pas jusqu'au bord. Un chemin reliera les trois maisons. Le style des maisons est laissé à votre appréciation. La partie nord de la map devra rester vide pour les prochains tutoriels. Bien sûr, les toits et les arbres devront être en high layer mais le héros ne devra pas pouvoir passer en dessous.

Correction

C'est un peu difficile de faire une correction sur ce genre de choses, donc voici un exemple que vous pouvez télécharger et utiliser comme base pour les prochains tutoriels. Vous remarquerez que vous pouvez faire sortir des tiles de la map, ça ne pose pas de problème : la partie qui déborde ne sera juste pas affichée. L'immense mur moche format falaise est là pour indiquer à peu près la taille de la zone réservée pour le prochain tuto.

Chap. 2 : Votre première mapChap. 4 : Les trésorsSommaire

fr/tutorial/houses_and_forests.txt · Dernière modification: 2018/12/22 14:14 (modification externe)