Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV

Apprendre
RPG Maker

Guides
Tutoriels
Astuces
Making-of

Dans le
Forum

Section Entraide

Scripts: Rpg Maker XP.Ace / Programmes: RPG Maker XP.Ace / Jeux: Glixel / News: De nouvelles informations (...) / Tutos: Autotiles améliorés : Vagues /

Chat  

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

68 connectés actuellement

10649071 visiteurs
depuis l'ouverture

91 visiteurs
aujourd'hui



Barre de séparation

Partenaires





Au hasard

Le Comptoir Du clickeur

Kingdom Ultimate

Hellsoft

RPG Fusion

Tashiroworld

Les deux derniers

Hellsoft

Planète Glutko

Nos autres partenaires

Devenir
partenaire




Pourcentages dans RPG Maker 2003
Ecrit par Momeka

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 : http://www.rpg-maker.fr/divers/momeka_pourcentages_rm_2003_fr_demo.zip

[hr]
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 (632 messages postés)

❤ 0

Je hais les principes de la thermodynamique

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 ~ Helen Action Shooter ~ The Jack-O-Lantern Quest ~


xvw - posté le 08/06/2020 à 14:20:53 (660 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

mon blog

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 | News | Forum | Flash-news | Sorties | Chat | Commentaires | Galerie | Blogs | Articles perso | Screen de la semaine | Palmarès | Livre d'or | Recherche | Interviews | OST | L'Annuaire | Divers
Apprendre: Le Wiki | Tutoriels | Guides | Gaming-Live | Tests | Making-of
Télécharger: Programmes | Scripts | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | Collection Oniro | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Hébergés:
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