LODM (L'Oasis des Makers)

Forum d'étude sur le Making RMXP
 
AccueilPortailFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez
 

 "Jauge Graphique" Gérer des jauges graphiques

Aller en bas 
AuteurMessage
Roys
Guide
Guide
Roys

Nombre de messages : 111
Age : 47
Projet Principal : Le Crépuscule des Dieux
Aide Recherchée pour : des chara aRPG
Surnom : Scripteur Monomaniaque
Date d'inscription : 24/02/2007

"Jauge Graphique" Gérer des jauges graphiques Empty
MessageSujet: "Jauge Graphique" Gérer des jauges graphiques   "Jauge Graphique" Gérer des jauges graphiques Icon_minitimeDim 18 Mar - 6:08

Bonjour

Ce script vous permettra de créer plusieurs jauges :
- à l'emplacement que vous voulez sur l'ecran
- qui réprésente une image
- avec un texte par dessus
- de la déplacer a n'importe quel moment du jeu et de changer son opacité

La jauge est gérée par une variable RPG Maker XP que VOUS désignez. Elle est mise à jour automatique dès que vous l'avez créée. Vous pouvez l'effacer à tout moment par une commande simple
Enfin, la sauvergarde est intégrée. C'est à dire que si vous sauvez votre partie, la jauge prendra la place où vous l'avez laissé lors de la sauvegarde.

Voici le script appelez le Jauge_Graphique et mettez le au dessus de main.
Des explications sont indiquées en en-tête pour créer votre première jauge, lisez les attentivement.
Attribuez une valeur de départ à votre variable bien sûr

bon making

Voici un exemple, avec un jauge symbolisée par un épée, la jauge se découvre au fur et à mesure de vos HP
"Jauge Graphique" Gérer des jauges graphiques Temp310

N'oubliez pas d'ajouter le script ci-dessous si vous ne l'avez pas déja fait
http://lodm.forumactif.com/Groupe-pour-Scripts-f4/Outils-pour-Event-Maker-f7/A-mettre-pour-ajouter-de-nouvelles-fonctions-t35.htm

Appelez ce script JaugeG au dessusde main
Code:

#============================================================================
# SCRIPT DE JAUGE GRAPHIQUE
# Stephane Roys, Royer
# Fevrier 2007
# Projet: Petite Boite à outils pour aider les event maker

# Ce script permet de gèrer en event l'apparition d'une jauge dont la longueur
# dépend d'une variable RPG Maker
#------------------------
# EXPLICATION (lire attentivement)
#------------------------
# CREER un jauge graphique en event
# Faire inserer commentaire :
# Jauge graphique nom x y var min max  votre_image votre_texte
# Remplacer
#          nom le nom identifiant votre jauge
#          x et y par les coordonnées ecran ou s'affichent votre jauge
#          var par le numéro de votre variable RPG maker qui contrôle la jauge (entre 1.999)
#          min la valeur minimale que peut prendre la variable (par ex : 0)
#          max la valeur maximale que peut prendre la variable (par ex : 100)
#          "votre_image" est le nom de l'image que vous avez importé dans le répertoire Pictures
#          "votre_texte" entre guillement est le nom de votre jauge (par ex "HP").

# DEPLACER une jauge graphique
# Faire inserer commentaire: jauge graphique deplace x y p
# Remplacer
#          x par la position de la fenetre sur la largeur
#          y par la position de la fenetre sur la hauteur
#          p l'opacité de la fenetre de jauge
# Si vous voulez remplacer une coordonnées parune variable de RPG maker, il vous suffit d'ecrire v1
# pour la variable 1, v2 pour la variable 2 et ainside suite

# EFFACER une jauge graphique
# Faire inserer commentaire: jauge graphique nom efface
# Remplacer nom par le nom de la jauge que vous voulez effacer
#------------------------
# exemple:
# inserer commentaire : Jauge graphique Hp  0 0 1 0 100 majauge HP
# ici on créé un jauge hp qui s'affiche en 0,0 (coin haut gauche)
# gèré par la variable001, dont les valeurs sont comprises entre 0 et 100
# L'image est réprésentée par "majauge"
# Le texte HP apparait par au dessus de la jauge

# Inserer commentaire Jauge Graphique Deplace Hp  v1 v2 255
# deplace la jauge Hp en v1, v2 qui sont 2 variables de RPG maker, avec une opacité de 255


#------------------------
# RECOMMANDATIONS
#------------------------
# 1- Vous pouvez changer la taille de la Police de toute jauge ici:
FONT="Arial"
TAILLE=16

#2- Prenez soin de donner des noms différents à vos jauges sinon vous risquez d'avoir des conflits

#3- Ne crééez pas une jauge en processus parallèle sinon vous allez créér une nouvelle jauge à chaque frame
# jusqu'a ce que RM bug

#4- La sauvergarde est comprise dans le script. Donc apres un load votre jauge sera dans l'etat ou elle a été sauvée

#5- Les jauges s'effacent toutes seuls quand vous sortez de la map vers un menu, et elles se recréent seules quand vous revenez sur la map

#============================================================================

INTERPRETER_JAUGEG="JAUGEGRAPHIQUE"

#==============================================================================
# Interpreter
# Permet d'ajouter une fonction un pas vers en commentaire dans un event
#==============================================================================
class Interpreter
  alias outil_jaugeg2_command108 command_108

  def command_108
    # Commande non valide
    if not @parameters[0].split.size<7
      # Commande valide
      if @parameters[0].upcase[/JAUGE GRAPHIQUE/]=="JAUGE GRAPHIQUE"
        #----------------------
        # Recupère les parametres de la commande(x,y,var,min,max,"votre_image","votre_texte")
        com=@parameters[0].split
        nom=com[2]
        # fonction DEPLACER
        if com[3].upcase=="DEPLACE"
          # Cherche la jauge par son nom
          for jaugeg in $game_party.jaugesg
            next if jaugeg.nom.upcase!=nom.upcase
            # Recupère les valeurs d'une variable ou la valeur brute
            mot=com[4]
            x= ( mot[0,1]=="v" ? $game_variables[(mot.gsub!("v") {}).to_i] : mot.to_i)
            mot=com[5]
            y= ( mot[0,1]=="v" ? $game_variables[(mot.gsub!("v") {}).to_i] : mot.to_i)
            mot=com[6]
            p= ( mot[0,1]=="v" ? $game_variables[(mot.gsub!("v") {}).to_i] : mot.to_i)
            jaugeg.deplace(x,y,p)
            return true
          end
          return true
        end
        # Fonction EFFACE
        if com[3].upcase=="EFFACE"
          # cherche le nom et efface la jauge
          for jaugeg in $game_party.jaugesg
            next if jaugeg.nom.upcase!=com[4].upcase
            jaugeg.off
            return true
          end
        end
        # fonction CREER
        x=com[3].to_i
        y=com[4].to_i
        var=com[5].to_i
        min=com[6].to_i
        max=com[7].to_i
        image=com[8]
        texte=com[9]
        # Crée la jauge
        Jauge_Graphique.new(nom,x,y,var,min,max,image,texte)
        return true
      end
    end
    outil_jaugeg2_command108
  end
end

#============================================================================
# JAUGE
# Créé le tableau des Jauges de Jeu
#============================================================================
class Game_Party
  attr_accessor:jaugesg
  alias jaugeg2_game_party_initialize initialize
  #--------------------------------------------------------------------------
  # INITIALIZE
  #--------------------------------------------------------------------------
  def initialize
    jaugeg2_game_party_initialize
    # Tableau des jauges
    @jaugesg=[]
  end
end

#============================================================================
# JAUGE
#============================================================================
class Jauge_Graphique
 
  attr_accessor:nom
  attr_accessor:value
  attr_accessor:x
  attr_accessor:y
  attr_accessor:texte
  attr_accessor:opacite
  attr_accessor:image
  attr_accessor:var
  attr_accessor:w
  attr_accessor:h
  attr_accessor:fin_jaugeg
 
  #--------------------------------------------------------------------------
  # INITIALIZE
  #--------------------------------------------------------------------------
  def initialize(nom,x,y,var,min,max,image,texte)
    @x=x;@y=y;@var=var;@min=min;@max=max
    @texte=texte
    @nom=nom
    @fin_jaugeg=false
    @visible=true
    @image=image
    @opacite=255
    image=Bitmap.new("Graphics/Pictures/"+image)
    @w=image.width
    @h=image.height
    $game_party.jaugesg.push(self)
  end
 
  #--------------------------------------------------------------------------
  # UPDATE
  # Calcule la longueur de la jauge en fonction de la variable var affectée
  #--------------------------------------------------------------------------
  def update
    @value = @w * $game_variables[@var] / (@max-@min)
  end

  #--------------------------------------------------------------------------
  # OFF
  # Termine la jauge
  #--------------------------------------------------------------------------
  def off
    @fin_jaugeg=true
  end
 
  #--------------------------------------------------------------------------
  # DEPLACEMENT
  # Deplace la jauge
  #--------------------------------------------------------------------------
  def deplace(x,y,p)
    @x=x
    @y=y
    @opacite=p
  end
end

#============================================================================
# ■ Spriteset Map
#============================================================================
class Spriteset_Map
  #--------------------------------------------------------------------------
  alias jaugeg2_spriteset_map_initialize initialize
  alias jaugeg2_spriteset_map_dispose dispose
  alias jaugeg2_spriteset_map_update update
 
  #--------------------------------------------------------------------------
  # INITIALIZE
  #--------------------------------------------------------------------------
  def initialize
    # Créé les jauges
    @jaugeg_windows=[]
    for jauge in $game_party.jaugesg
      setup_jaugeg(jauge)
    end
    jaugeg2_spriteset_map_initialize
  end
 
  #--------------------------------------------------------------------------
  # SETUP
  #--------------------------------------------------------------------------
  def setup_jaugeg(jauge)
    window=Window_Base.new(jauge.x, jauge.y, jauge.w+32, jauge.h+32+TAILLE)
    window.contents = Bitmap.new(window.width - 32, window.height - 32)
    window.contents.font.color= Color.new(0,0,0)
    window.opacity=0
    window.contents_opacity = jauge.opacite
    window.z = 3000
    window.contents.font.name = FONT
    window.contents.font.size = TAILLE
    @jaugeg_windows.push(window)
  end

  #--------------------------------------------------------------------------
  # UPDATE
  #--------------------------------------------------------------------------
  def update
    jaugeg2_spriteset_map_update
    #-----------------------------
    # Cherche si une nouvelle jauge a été créée
    for key in @jaugeg_windows.size..$game_party.jaugesg.size-1
      setup_jaugeg($game_party.jaugesg[key])
    end
    #-----------------------------
    # Update la jauge
    delete_window=[]
    delete_jauge=[]
    for key in  0..$game_party.jaugesg.size-1
      jauge=$game_party.jaugesg[key]
      window=@jaugeg_windows[key]
      # Affiche la fenêtre de la jauge
      update_jaugeg(jauge, window)
      # Observe si la jauge est disposée
      if jauge.fin_jaugeg
        delete_window.push(window)
        delete_jauge.push(jauge)
      end
    end
    #-----------------------------
    # Dispose la jauge
    for window in delete_window
      window.dispose
      @jaugeg_windows.delete(window)
    end
    for jauge in delete_jauge
      $game_party.jaugesg.delete(jauge)
    end
  end
 
  #--------------------------------------------------------------------------
  # UPDATE JAUGE
  #--------------------------------------------------------------------------
  def update_jaugeg(jauge,window)
    #-----------------------------
    # Recalcule la jauge
    jauge.update
    window.x=jauge.x
    window.y=jauge.y
    window.contents_opacity=jauge.opacite
    #-----------------------------
    window.contents.clear
    image=Bitmap.new("Graphics/Pictures/"+jauge.image)
    w=image.width
    h=image.height
    # Affiche l aportion de la jauge graphique et le texte
    window.contents.draw_text(0,0,jauge.w,jauge.h,jauge.texte,1)
    window.contents.blt(0, TAILLE, image, Rect.new(0,0,jauge.value,jauge.h))
  end
 
  #--------------------------------------------------------------------------
  # DISPOSE
  #--------------------------------------------------------------------------
  def dispose
    jaugeg2_spriteset_map_dispose
    for window in @jaugeg_windows
      window.dispose
    end
  end
end


Dernière édition par le Ven 25 Jan - 13:02, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://lodm.forumactif.com
dams999



Nombre de messages : 12
Date d'inscription : 12/05/2007

"Jauge Graphique" Gérer des jauges graphiques Empty
MessageSujet: Re: "Jauge Graphique" Gérer des jauges graphiques   "Jauge Graphique" Gérer des jauges graphiques Icon_minitimeLun 25 Juin - 11:18

Heu Roys, j'ai détecté 1 petit défaut, impossible d'effacer les jauges avec la commande:

jauge graphique nom
ou encore
Jauge graphique nom
ou encore
jauge grapique "nom".

Si tu pouvais voir sa^^.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Roys
Guide
Guide
Roys

Nombre de messages : 111
Age : 47
Projet Principal : Le Crépuscule des Dieux
Aide Recherchée pour : des chara aRPG
Surnom : Scripteur Monomaniaque
Date d'inscription : 24/02/2007

"Jauge Graphique" Gérer des jauges graphiques Empty
MessageSujet: Re: "Jauge Graphique" Gérer des jauges graphiques   "Jauge Graphique" Gérer des jauges graphiques Icon_minitimeJeu 28 Juin - 4:40

Bien sur^^
Je ne sais pas si tu t es trompé dans les exemples que tu me donnes mais je ne vois nul part le mot efface:
la commande juste est:
Faire inserer commentaire: jauge graphique efface nom

C est ca?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://lodm.forumactif.com
dams999



Nombre de messages : 12
Date d'inscription : 12/05/2007

"Jauge Graphique" Gérer des jauges graphiques Empty
MessageSujet: Re: "Jauge Graphique" Gérer des jauges graphiques   "Jauge Graphique" Gérer des jauges graphiques Icon_minitimeJeu 28 Juin - 8:34

Heu oui, dans mon exemple j'ai oublie le "efface", mais en mettant en commentaire:

jauge graphique efface nom
ou encore
Jauge graphique efface nom
ou encore
jauge grapique efface "nom".

Je n'obtient aucun resultat.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




"Jauge Graphique" Gérer des jauges graphiques Empty
MessageSujet: Re: "Jauge Graphique" Gérer des jauges graphiques   "Jauge Graphique" Gérer des jauges graphiques Icon_minitime

Revenir en haut Aller en bas
 
"Jauge Graphique" Gérer des jauges graphiques
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Comment afficher la vitesse dans la fenêtre "Profil d'altitude".
» MA NOUVELLE VITRINE POUR MES "PETITS TRAINS".
» Enlever le "Ko" de la veleure retournée par "Obtenir la taille d'un fichier" [RESOLU]
» Des "templates" pour vos emails ou newsletters
» Partenariat: "GFX Home"

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
LODM (L'Oasis des Makers) :: Groupe pour Scripts :: Outils pour Event-Maker-
Sauter vers: