Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

News: Les actualités de fin d'année / Jeux: Glixel en version complète / Jeux: Izac 1 / News: Des jeux d'hiver sous la couette / Scripts: Système de vol pour RPG Maker (...) / Chat

Bienvenue
visiteur !





Désactiver
la neige


publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

233 connectés actuellement

30834665 visiteurs
depuis l'ouverture

1932 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Zarok

Kingdom Ultimate

Offgame

Lumen

Tous nos partenaires

Devenir
partenaire



Pourcentages dans RPG Maker 2003

Une méthode pour obtenir le pourcentage ou une valeur à partir d'un pourcentage, et deux exemples pratiques utilisant des images. Non compatible avec RM2000 pour l'application des exemples.

Ecrit par Momeka le 07/06/2020


❤ 1

Guide pour utiliser des pourcentages dans RM 2003








Les pourcentages et RPG Maker 2003

Les pourcentages ne sont pas la première fonction qui vient à l'esprit quand on utilise RPG Maker 2003. Ils y ont pourtant leur utilté, notamment quand vous commencez à créer des systèmes customs et des menus, comme une jauge de PV ou un sort dont les dégâts dépendent de la vie restante de l'utilisateur.
Comme je suis tête en l'air et que les maths ne sont pas mon point fort, j'oublie tout le temps comment cela fonctionne et je finis toujours par devoir vérifier comment ça marche. Je me suis donc dit qu'écrire ce guide me permettrait d'avoir un endroit où je pourrais toujours revenir, et qui pourrait aider les autres.

A la fin de ce tuto, vous trouverez une démo des deux exemples développés ici. Vous pourrez vous y reporter si vous souhaitez voir tous les événements.



Convertir des valeurs en pourcentages

D'habitude, quand vous voulez obtenir un pourcentage de quelque chose, vous divisez la valeur par la valeur maximale. Par exemple, 45/75 = 0,6, soit 60%. Cela ne fonctionne pas sur RM, qui ne supporte pas les nombres décimaux. Ce qui veut dire qu'on doit contourner ce problème en obtenant un résultat entre 0 et 100, au lieu de 0.0 et 1.0.
Pour cela, on peut utiliser la formule suivante :

Portion de code : Tout sélectionner

1
result = (100*current + max/2)/max



En reprenant notre exemple de 45/75, cela donnerait :

Portion de code : Tout sélectionner

1
2
3
4
result = (100*45 + 75/2)/75
result = (4500 + 37)/75
result = 4537/75
result = 60




Et comment on retranscrit ça sur RM ? Créons un événement commun, et procédons étape par étape. Nommez-le "Obtenir %” ou assimilé et mettez en condition de lancement “None”.

Ensuite, nous avons besoin de créer quatre variables :
% Result - Le résultat de nos calculs. C'est la variable que vous utiliserez pour la mise à jour de votre barre de vie, aka le pourcentage actuel.
% Valeur Max - La valeur max du pourcentage que l'on veut obtenir (75, dans notre exemple précédent). Vous devrez définir cette variable avant de lancer l'événement commun "Obtenir %".
% Valeur actuelle - La valeur actuelle du pourcentage à calculer (45, dans notre exemple précédent). Vous devrez aussi définir cette variable avant de lancer votre événement commun.
% Temporaire - Cette variable sera utilisée durant le processus de calcul dans l'événement commun. Vous n'avez pas besoin d'y toucher.

Votre fenêtre de variables devrait ressembler à ça :
image

Maintenant qu'on a toutes nos variables, on peut intégrer notre formule :

Portion de code : Tout sélectionner

1
result = (100*current + max/2)/max



On va commencer en faisant % Temporaire = % Valeur Max.
Faites % Result = % Valeur actuelle. Ensuite, on multiplie % Result par 100.
Maintenant, on ajoute % Temporaireà % Result.
Et enfin, il ne reste qu'à diviser % Result par % Valeur Max, d'où résulte ceci :
image

:avert2 Il existe une manière plus simple et fonctionnelle de faire cette opération, avec les mêmes résultats :

Portion de code : Tout sélectionner

1
result = 100*current/max


Ce qui donne dans RM :

Portion de code : Tout sélectionner

1
2
3
%Result = %Valeur actuelle
%Result * 100
%Result / %Max Value



Nous venons de compléter notre événement pour convertir une valeur en pourcentage. Donc il ne reste plus qu'à voir comment l'utiliser dans un événement. Disons que notre héros a été blessé ou soigné, et nous avons besoin de mettre sa barre de vie à jour.
image

333 constituent les PV max de notre héros (% Valeur Max), donc on modifie cette variable, et dans cet exemple les PV actuels du héros correspondent à % Valeur actuelle.
Une fois ces deux variables modifiées, on peut appeler notre événement commun. Vu que la base de donnée des images démarre à 1 et pas 0, on doit ajouter 1 à % Result (nos images vont donc de 1 à 101, pour les pourcentages).
image

Mais comment fait-on si notre barre de vie ne va pas de 0 à 100 (pixels), mais de 0 à 34 ?



Convertir des pourcentages en valeurs

Pour convertir des pourcentages en valeur, on formule ainsi :

Portion de code : Tout sélectionner

1
result = (percent * (max - min) / 100) + min



Si on reprend notre exemple, nos 60% de 75 :

Portion de code : Tout sélectionner

1
2
3
4
result = (60 * (75 - 0) / 100) + 0
result = 60 * 75 / 100
result = 4500 / 100
result = 45



Vous devez trouver tous ces 0 bizarres ; ils nous autorisent à convertir des étendues de valeurs ne démarrant pas par 0 mais une valeur plus élevée, par exemple de 23 à 434. Ou un tout autre exemple.
Si on souhaite seulement des valeurs à partir de 0, on pourrait utiliser cette formule à la place :

Portion de code : Tout sélectionner

1
result = (percent * max) / 100



Elle est plus simple à incorporer dans RM, mais c'est la première que je vais détailler dans ce tuto.

Pour la mise en place, on aura besoin d'un autre événements commun, qu'on peut appeler "Map %", et qui doit aussi avoir pour déclencheur “None”.

Et on aura aussi besoin de 4 nouvelles variables :
Obt Result - Le résultat de ces calculs, que vous allez utiliser dans vos événements.
Obt Valeur Max - La valeur maximale existante pour obtenir le pourcentage. A définir avant d'appeler l'événement commun.
Obt Valeur Min - La valeur minimale existante pour obtenir le pourcentage, qui doit aussi être paramétrée avant l'événement commun.
Obt % - C'est le pourcentage à utiliser, où 0 constitue la valeur minimale, 100 le max, 200 le double. Aussi à paramétrer avant l'appel.

Le résultat sur votre fenêtre de variables :
image

Maintenant, commençons à incorporer notre formule dans RM :

Portion de code : Tout sélectionner

1
result = (percent * (max - min) / 100) + min



Il faut commencer par faire Result variable = Obt Valeur Max, et ensuite soustraire Obt Valeur Min du résultat obtenu pour obtenir (max-min).

Ensuite, multipliez Obt Result par Obt %, puis divisez-le par 100.
Enfin, il n'y a plus qu'à ajouter Obt Valeur Min à Obt Result et c'est fini !
image

Maintenant, en action : ici, nous avons un avion qui en deux secondes doit zoomer/dézoomer quand il se déplace. Cela pourrait facilement être fait avec la commande Move Picture, mais l'intérêt de le faire avec notre méthode est de pouvoir faire une pause pendant le mouvement, ou tout simplement de laisser le joueur contrôler l'avion. Dans ce cas, on crée un événement en processus parallèle sur la carte, comme ceci :

Spoiler (cliquez pour afficher)



La variable Current Frame désigne la position de l'avion par rapport au chemin. Il s'agit essentiellement d'un chronomètre. % Valeur Max est paramétrée à 120, ce qui donnerait 2 secondes. RM tournant à 60 frames par seconde, cela signifie que l'événement sera mis à jour 60 fois par seconde, d'où les 120.
Avec ces deux variables, on peut obtenir le pourcentage de chemin parcouru en utilisant notre événement commun [couleur=gold]Obt %[/color]. Avec un pourcentage, on peut cartographier la position de notre avion par rapport à la map avec notre nouvel évément, Map %. Vous avez juste à définir les variables Obt Valeur Min et Obt Valeur Max.
Il ne reste plus qu'à positionner notre avion en tant qu'image, avec les positions X/Y et le résultat obtenu.
image


La démo ci-dessous contient les deux exemples développés ci-dessus. Tous les matériaux graphiques ont été réalisés par Momeka.
Lien : https://www.rpg-maker.fr/divers/tutoriels/tuto644_momeka_pourcentages_rm_2003_fr_demo.zip



Ce tutoriel a été traduit avec l'autorisation de Momeka.

Source :
_ Momeka, "Percentages in RPG Maker 2003", RMN, 11 octobre 2019 [consulté le 20 mai 2020], lien : https://rpgmaker.net/tutorials/2648/



Qb!k - posté le 08/06/2020 à 08:19:17 (935 messages postés) -

❤ 0

Loading ||||...... Please Wait

Bien joué ! C'est la méthode que j'utilise pour afficher une jauge de vie dans mes jeux en utilisant la fonction déplacer en fonction du pourcentage obtenue.
C'est pratique et surtout moins Gourmand en ressources que la fonction "Afficher".

La tour planaire ~ The Jack-O-Lantern Quest ~


xvw - posté le 08/06/2020 à 14:20:53 (736 messages postés)

❤ 0

yo

On a une version simplifiée avec RME, si ça vous intéresse :
https://github.com/RMEx/RME/wiki/Cr%C3%A9er-des-jauges-simples

RME étant un script rajoutant des commandes par appel de script pour VX Ace, il est inutilisable sur RM2003.

https://xvw.lol

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers