Les objets (Objects) sont les parties animées du décor. Ils peuvent servir pour mettre simplement un peu de vie (flammes qui dansent, eau qui coule, animal qui mange...), ou pour provoquer certains événements (objet à ramasser, levier à activer, porte à ouvrir...).
Nous allons commencer par un objet simple : une clef par terre à ramasser. Basique, me direz-vous, mais je compte sur votre imagination pour trouver des idées plus originales par la suite !
Rendez-vous dans la room 1, et choisissez "Show this room's : Objects". Faites un clic droit sur l'écran là où vous souhaitez ajouter l'objet, puis choisissez "New Object Here". Vous voyez apparaître une tasse bleue : c'est l'image par défaut du logiciel. Cliquez dessus et déplacez-la si l'endroit ne vous convient pas :
Nous allons maintenant sélectionner une image pour la clef. Double-cliquez sur la tasse : vous êtes envoyé à l'écran de gestion des sprites (images servant pour les objets, les personnages et l'interface, bref tout ce qui n'est pas du décor). Vous pouvez voir les sprites de base du template par défaut. Double-cliquez sur le sprite représentant une petite clef (pas la grosse, sinon elle ne sera pas à l'échelle par rapport au personnage !). Magique, la clef vient d'apparaître dans le décor !
Vous pouvez lui donner un nom dans le cadre Name, par exemple «la clef» (logique). C'est le nom qui apparaîtra lorsque le joueur cliquera dessus durant le jeu. Vous avez ensuite plusieurs options pour cet objet :
-
Visible : si cette option est True, l'objet sera visible dès le début du jeu. Si elle est False, il faudra le rendre visible plus tard, par exemple lorsque le personnage aura effectué une certaine action. Mettez True pour l'instant.
-
Baseline Overriden : comme pour les Walk-behinds, c'est la ligne qui détermine à partir de quand le personnage marche derrière l'objet (s'il occupe un certain espace), et devant l'objet. Si cette option est false, le personnage marchera toujours devant. En mettant True, vous ferez apparaître la coordonnée Y de la baseline.
-
Interaction (icône en forme de foudre) : c'est le coeur de la programmation d'AGS ! C'est à partir de cette interface que vous pourrez déterminer ce qui se passe quand le joueur fait telle ou telle action. Cliquez dessus, vous voyez apparaître une liste de conditions (Events), correspondant aux différentes actions que vous pouvez effectuer sur cet objet : Look at object (Regarder l'objet, qui correspond donc aux événements qui se produisent quand vous cliquez sur l'objet avec la souris en mode Regarder), Interact Object (idem, avec la souris en mode Utiliser), Talk to Object (idem, avec la souris en mode Parler), Use Inventory on Object (pour utiliser un objet de l'inventaire avec l'objet), etc. Les autres options correspondent à différents modes de la souris, qui ne sont pas disponibles avec l'interface Sierra actuelle (par exemple si vous utilisez une interface LucasArts avec une série de verbes tels que prendre, ouvrir, pousser...).
Ici, nous voulons que le personnage ramasse la clef afin de l'ajouter à l'inventaire. Nous devons donc utiliser l'option «Interact Object» (avec une interface possédant l'option Prendre, il faut utiliser alors l'option «Pick Up Object», mais dans notre interface Sierra, c'est la même icône pour utiliser et prendre).
Cliquez sur Interact Objet, puis sur "...". Vous vous retrouvez dans le script, et le texte "function clef_Interact() { }" a été automatiquement ajouté. Nous allons programmer les évéments entre les deux accolades.
Entrez ce texte dans le script :
- Code:
-
cEgo.Walk(clef.X, clef.Y, eBlock, eWalkableAreas);
clef.Visible=false;
Cela signifie que nous demandons au personnage cEgo (Roger) de marcher (Walk) jusqu'aux coordonnées X et Y de la clef. Le jeu sera en pause durant son déplacement (eBlock) et il marchera automatiquement sur les aires de marche (eWalkableAreas). Ensuite de quoi, la clef disparaît de l'écran.
Nous devons maintenant faire en sorte que la clef apparaisse dans l'inventaire. Dans le menu à gauche, cliquez sur Inventory Items : c'est l'écran de gestion de l'inventaire.
Vous pouvez voir les deux objets par défaut du template Sierra : Key et Pink Poster. Double-cliquez sur Key, l'Inventory Item numéro 1. Vous pouvez voir différentes options correspondantes aux objets d'inventaire :
-
Description : le nom de l'objet, tel qu'il apparaîtra dans le jeu si on clique dessus (mettez par exemple "la clef").
-
Name : le nom de l'objet pour le script. Mettez iClef.
-
Player starts with item : détermine si le personnage commence le jeu en ayant déjà cet objet sur lui. Cette option est pratique pour tester certains événements du jeu sans avoir à répéter les actions nécessaires pour récupérer ces objets.
-
Change Image : déterminer quel sprite est utilisé pour cet objet lorqu'il apparaît dans le jeu quand le joueur ouvre la boîte d'inventaire. Par défaut, c'est l'image de la petite clef qui est utilisée, mais étant donné que nous ne sommes plus soumis aux principes des échelles dans la boîte d'inventaire, nous pouvons utiliser une image plus grande. Cliquez donc sur Change Image, puis sélectionnez la grande clef dans le gestionnaire de sprites. Voilà qui est mieux !
Notez donc que cet objet est l'Inventory Item numéro 1.
ATTENTION : les Objects (objets de l'écran) et les Items (objets de l'inventaire) sont bel et bien deux éléments de jeu distincts. Même si les items sont souvent ajoutés dans l'inventaire lorsqu'on prend un objet (mais ils peuvent apparaître avec n'importe quel autre événement, tout dépend de votre scénario), il faut chaque fois déterminer 1) l'objet et 2) l'item. Les graphismes les représentant ne sont pas forcément les mêmes.
Revenez ensuite dans le script de la room (en cliquant sur l'onglet "room1.asc"), et ajoutez :
- Code:
-
cEgo.AddInventory(iClef);
Ce qui signifie qu'on donne (AddInventory) l'objet d'inventaire Clef (iClef) au personnage Roger (cEgo).
Sauvegardez, puis testez le jeu. Utilisez l'icône Utiliser sur la clef et observez le résultat !