Salut tout le monde
, je sais qu'un tuto comme celui ci est déjà sur le forum mais le miens
est dans un autre style. Je vous conseille d'aller voir la démo avant de faire le tuto pour savoir à
quoi vous attendre puisque c'est un event assé complexe et si vous n'aimez pas le rendu, inutile de se donner
autant de mal.
Il nécessitera un peu de connaissance d'un programme de retouche d'image et une bonne base
en eventing.
Difficulté : Difficile (novices s'abstenir
)
Matériel-Les objets que vous désirez afficher.
-Les images précisées plus bas.
-2 events communs
-2 interrupteurs
-4 variables dont 1 défini par un script (pour les besoins de la cause désolé
)
Description.1- Cet event permettra d'afficher un petit inventaire sur votre map.
2- Le personnage pourra bouger même si l'inventaire est activé.
3- Il sera activable à partir du menu, vous aurez donc besoin du script Common Event in Menu par puppeto4.
Pour avoir le script déjà configuré pour activer l'inventaire via le menu, il suffit de le prendre dans la démo.Les scripts présents sur la démoMenuEventCommuns (pour activer l'inventaire)
Max Items (il n'est pas obligatoire mais je l'ai mis pour vous éviter de le chercher, mais vous n'êtes pas
obligé de l'utiliser)
Réserve (encore une fois ce script n'est pas obligatoire c'est juste pour vous permettre d'expérimenter avec
les items).
Pour vous faire un résumé et que tout le monde comprenne, les seules choses en rapport avec le tuto dans
cette démo sont : Le script du MenuEventCommuns et il sert simplement à l'activation de l'event commun.
Les autres choses importantes sont les 2 seuls events communs qui sont présents dans la démo.
Inconvénients d'un inventaire en EventMême si vous êtes un des meilleurs eventmaker, il y a quand même des inconvénients et des contraintes à faire un inventaire en event.
1- Les objets sont limités puisqu'on ne peut pas mettre plus de 20 images.
(hé oui la limite de numéro
d'image est de 20)
2- Il faudra baisser la limite d'objet du même type si vous ne voulez pas passer la journée sur
votre event (vous comprendrez plus loin).
Le TutoLes imagesLes images à enregistrer dans le dossier pictures de votre projet.
- Spoiler:
La base de l'inventaire (100% custom par moi
)
Vous devez faire tout les chiffres jusqu'au nombre maximum d'item de même
sorte que vous mettez. Ex: vous avez un nombre d'item de même sorte max de 20, vous devez faire tout les
nombres jusqu'à 20 sur des images séparées.
- Spoiler:
Et ainsi de suite...La couleur d'écriture blanche est celle qui paraitra le mieux quand elle sera placée par
dessus les items.
***Important***Les images des chiffres ne doivent pas dépasser le format 24x24 autrement ils ne seront plus dans la case des
items. Même que je recommande qu'ils soient seulement 10x14. Il est aussi important que le fond de l'image
soit transparent pour voir les items quand les chiffres seront affichés par dessus eux.
Les dernière images à enregistrer dans pictures sont celles de chaque item que vous désirez mettre dans votre
inventaire. Ex : Vous voulez afficher les pommes, raisins, fraises. Vous devrez alors découper les images sur
votre iconset en format 24x24 puisqu'une icône mesure 24x24. J'ai utilisé Paint.Net pour ce faire. Le fond doit
également être transparent. Quelques images pour vous montrer à quoi va ressembler vos images après le
découpage.
- Spoiler:
Bon en résumé, je viens simplement de vous montrer les ressources graphiques que vous aurez besoin pour
l'inventaire en event.
Tous les formats d'images.
Base de l'inventaire : 250x150
Image d'un chiffre : maximum 24x24 (formats de la démo : 10x14)
Image d'un objet : 24x24 (la taille d'une image sur l'iconset et la taille disponible dans un slot de l'inventaire).
L'eventFonctionnementLe premier event affiche l'image de la base de l'inventaire, l'image de l'objet s'affiche sur une case de
l'inventaire (on a seulement à indiquer les coordonnées de la première case et les coordonnées des
autres cases se calculera automatiquement magique non?
Le deuxième event sert seulement à actualiser
l'inventaire s'il est activé en utilisant le même principe que le premier event.
Bon, c'est la que ça commence à être plus chaud à expliquer avec tout les numéros d'image.
Voici un screen de l'inventaire que vous seriez supposé avoir après le tuto. (si vous n'avez pas ajouté plus
d'objets bien sur).
- Spoiler:
Je vous
recommande aussi de prendre les mêmes images que je vous donnerai tout de suite après
cette phrase.
- Spoiler:
Bon maintenant que vous avez tout ce qu'il faut graphiquement pour ce tuto, passons à l'action!
Il y aura 2 events communs J'ai appelé le premier : Inventaire et le deuxième : RefreshInventaire.
Le premier servira à afficher l'inventaire quand on l'appelle via le menu, hé oui voila l'utilité du script pour
afficher des événements communs sur le menu! Et le deuxième servira à actualiser l'inventaire de sorte que
vous n'aurez pas besoin de fermer et de rouvrir l'inventaire pour voir si vous avez des nouveaux objets.
Premier Event- Spoiler:
Cette partie est pour déterminer si le menu doit être fermé ou ouvert puisqu'on utilise la même commande du
menu pour l'ouvrir ou le fermer. Si l'interrupteur InventaireOn est activé on ferme l'inventaire donc on efface
toute les images et on désactive l'interrupteur. Le contraire, on affiche l'inventaire et on active l'interrupteur.
L'affichage de l'inventaire se passe après le "sinon".
- Spoiler:
Donc l'interrupteur InventaireOn activé est pour indiquer que l'inventaire est ouvert. Ensuite le afficher image1
est pour afficher l'image de la base de l'inventaire.
Cette partie affiche l'image de la base de l'inventaire aux coordonnées indiquées. (celles
présentes sur ce screen feront apparaitre la base de l'inventaire dans le coin inférieur droit de l'écran. Les
variables EmplacementX et EmplacementY représentent l'emplacement où le premier item apparaitra.
La valeur EmplacementX est simplement «les coordonnéesX que vous avez mis pour la base» + 17Celle de EmplacementY est »les coordonnéesY que vous avez mis pour la base« + 42Comme vous pouvez le constater, EmplacementX a la même valeur que EmplacementY peu importe où vous
placerez la base de l'inventaire. Un bon moyen pour savoir si vous vous êtes trompé dans les calculs.
Finalement, le appeler script @i=0 sera utile plus tard, je vous l'expliquerai après le prochain screen.
- Spoiler:
Premièrement je vais expliquer le principe. @i est simplement une variable que l'event utilise pour compter à
quel slot de l'inventaire il est rendu à afficher l'item et le chiffre. Donc @i augmente de 1 à chaque fois que la
boucle revient pour indiquer qu'il est rendu au slot suivant.
La condition que vous avez vu plus tôt Script @i < 21 signifie que tant que la valeur de @i est en dessous de 21
(nombre maximum de slot), la boucle continue pour afficher l'item suivant. Ensuite la condition Script @i == 1
signifie que si l'event est rendu au slot1 il affichera les éléments qu'on mettra après cette condition.
J'ai décidé d'afficher les pommes dans le premier slot alors il faut faire afficher l'image de pomme qu'on a
découpé ou que je vous ai donné
. Les coordonnées de l'image seront définies avec les variables
EmplacementX et EmplacementY qu'on a défini plus tôt. La variable NombreObjet sert seulement à indiquer
combien vous avez d'objet. Ensuite la tonne de condition qui fait peut n'est en fait qu'une répétition... Elle sert
à indiquer que si la variable NombreObjet == X, l'image du chiffre X sera affichée.
Ex: Condition variable NombreObjet == 4 l'image du chiffre 4 sera affiché par dessus notre item qui a été
affiché plus tôt. Vous remarquez pas une similitude entre le code après Afficher les pommes et le code Afficher
les Champirgnons? Hé bien c'est presque pareil à l'exception de quelques petites choses :
L'image à afficher, la valeur de la variable NombreObjet et le numéro des images. Donc si vous voulez ajouter
plus d'objet vous devez copier le code contenant la tonne de condition variable NombreObjet == X. Les
modifications à apporter au code sont :
-Numéros d'images différent
-Image différente,
SEULEMENT l'image de l'objet et non les images des chiffres (les images
après les condition variable NombreObjet == X) les N° d'image pour les chiffres doivent être différents des
autres images mais le N° d'image des chiffres d'un même objet doit être identique. Si vous ne comprenez pas,
regardez quels sont les numéros d'image sur le screen présenté ou voici une légende :
1: Base de l'inventaire
2: Image de l'objet "Pomme"
3: Chiffre indiquant combien d'objet "Pomme" possédé
4: Image de l'objet "Champignon"
5: Chiffre indiquant combien d'objet "Champignon" possédé.***Important***Les numéro de l'image est très important. Si l'image de la pomme a le même N° que la base de l'inventaire, il
remplacera l'image de la base. Vous comprenez? Vous pouvez aller voir le résumé des chiffres que j'ai fait
plus haut dans le tutoriel pour comprendre comment je les ai organisé pour éviter de se mélanger. *Ouf c'est
un long tuto en? C'est pas facile à expliquer non plus
*
Bon maintenant j'explique la suite du screen présenté plus haut. La variable EmplacementX est additionnée de
32 (c'est le nombre de pixel entre chaque slot). Tadam! Cette seule commande permet aux items de se placer
à la bonne place automatiquement (si vous avez mis la bonne valeur initiale au début). En fait non il y a les 2
conditions juste en dessous qui permettent à la variable EmplacementY de changer de ligne quand elle arrive
au bout d'une ligne de l'inventaire. Puisqu'il y a 7 slots dans une ligne de l'inventaire, quand @i arrive à 7, la
variable EmplacementY est augmentée de 32 et la variable EmplacementX est diminuée de 224 pour revenir
au premier slot de la deuxième ligne. Même chose quand @i arrive à 14. Le "Sortir de la Boucle" après le
"sinon" est
TRÈS important, car c'est grace à lui que l'event va sortir de sa boucle quand
l'inventaire est fini d'être créé. Sinon le jeu bug parce que les boucle n'arrêtent plus.
Deuxième EventLe deuxième event maintenant
!! Yay vous vous dites tous, on a encore des ***** réglages à faire. Mais
cet event sera beaucoup moins compliqué que le deuxième, si vous avez bien compris le premier. Parce qu'en
fait c'est le même event que le premier mais avec quelques petites différences.
1- Il n'y a pas de boucle puisqu'il est en processus parallèle donc il n'y a pas de "Sortir de la Boucle à la fin
2- Il y a un petit code de plus au début et un interrupteur de plus dans ce code.
- Spoiler:
La partie rajoutée en haut est pour que les variables EmplacementX et EmplacementY ne reviennent pas aux
coordonnées du premier slot à chaque fois que la boucle revient (puisqu'il est en processus parallèle). Voilà
l'utilité de l'interrupteur ValeurRéinitialize, à chaque fois que la boucle arrive au 21e slot l'interrupteur
ValeurRéinitialize est désactivé de sorte que les variables EmplacementX et EmplacementY reviennent au
premier slot.
Donc en résumé voici le premier event au complet.
- Spoiler:
Le Deuxième.
- Spoiler:
Si vous avez des questions par rapport au fonctionnement ou des problèmes n'hésitez pas à les poser!
J'espère que ça vous sera utile.