IrrAdventure - Partie 5 - Creation des widgets

Revenir à l'index

Avant de voir l'utilité des variables, nous allons créér des widgets.

Les widgets sont des petits éléments graphiques qui se superposent au fond.

Creation d'un widget

Créez un objet quelconque, par exemple une pomme, avec votre éditeur de dessin préféré. Insérez le fichier pomme.bmp ainsi créé dans le dossier "data/0/". Note : d'autres types de format sont acceptés, comme le jpg, ou tout autre format pris en charge par Irrlicht.

Maintenant, dans le fichier XML, ajoutez juste après la balise ouvrante <node0 ... > la ligne suivante :

<widget widgetPicture="pomme.bmp" skyboxPart="2" posX="0" posY="0" />

Petit résumé : votre fichier XML doit être maintenant :


<?xml version="1.0"?>

<general>
<normalMouse nbPictures="1" timeAnimation="0" />
<eventMouse nbPictures="4" timeAnimation="300" />
</general>

<variables>
<variable camembert="5" />
<variable emmental="5" />
</variables>

<sounds>
</sounds>

<nodes>

<node0 north="1">
<widget widgetPicture="pomme.bmp" skyboxPart="2" posX="0" posY="0" />
<mechanism clickX="-0.948778" clickY="-0.218659" clickZ="-0.228055" clickRadius="0.05" newNode="45">
<consequenceSetVar variable="camembert" newValue="10" />
<consequenceIncrVar variable="emmental" incrementation="-1" />
</mechanism>
</node>
<node1 south="0">
</node>
<node45 south="0">
</node>

</nodes>

Test

Lancez le jeu. Vous devriez voir apparaitre la pomme en haut à droite d'une des faces. Notez qu'il n'y a pas de couleur transparence, et que ça ne se fond donc pas très bien dans le décor. Pour faire fondre la pomme dans le décor, vous devrez faire un copier-coller du fond dans le fichier de l'image.

Appuyez sur W pour afficher sur la console tous les widgets du noeud courant.

Vous pouvez aussi créer un widget animé, en ajoutant les attributs "nbImages" (nombre d'images de l'animation) et "timeOneImage" (temps avant de passer à l'image suivante, en millisecondes). Dans ce cas, vous devez créer une image regroupant toutes les images de l'animation, à la suite, comme dans le fichier "example/data/1/widget3.bmp". Si vous ne voulez pas que l'animation tourne en boucle sans s'arrêter, vous pouvez ajouter un autre paramètre, "nbTimesAnimation", qui donne le nombre d'images jusqu'à l'arrêt de l'animation. Voir le jeu exemple pour comprendre.

La face où a été mise la pomme est définie par la valeur de skyboxPart :

La position où a été mise la pomme est définie par la valeur de posX et posY, en pixels, à partir d'en haut à droite.

Aller à la partie 6