LODM (L'Oasis des Makers)
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

LODM (L'Oasis des Makers)

Forum d'étude sur le Making RMXP
 
AccueilPortailRechercherDernières imagesS'enregistrerConnexion
Le deal à ne pas rater :
Réassort du coffret Pokémon 151 Électhor-ex : où l’acheter ?
Voir le deal

 

 Ajouter des jauges colorées

Aller en bas 
AuteurMessage
Roys
Guide
Guide
Roys


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

Ajouter des jauges colorées Empty
MessageSujet: Ajouter des jauges colorées   Ajouter des jauges colorées Icon_minitimeDim 25 Fév - 5:48

Bonjour

Ce script vous permettra de créer plusieurs jauges :
- à l'emplacement que vous voulez sur l'ecran
- de la taille que vous voulez
- avec la couleur que vous voulez
- avec un texte par dessus

La jauge est gérée par une variable RMXP 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 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.

bon making

Code:
#============================================================================
# SCRIPT DE JAUGE
# 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

# 1- Créer un jauge en event
# Faire inserer script: $jauge = Jauge.new(x,y,w,h,var,min,max,r,v,b,"texte")
# Remplacer $jauge par $le_nom_de_votre_jauge
#          x et y par les coordonnées ecran ou s'affichent votre jauge
#          w par largeur de votre jauge
#          h par hauteur de votre jauge
#          var par le numéro de votre variable qui contrôle la jauge
#          min la valeur minimale que peut prendre la variable (par ex : 0)
#          max la valeur maximale que peut prendre la variable (par ex : 100)
#          r,v,b par les composantes (0a255) rouge, vert, bleu de la couleur de votre jauge (par ex 255,0,0 donne du rouge vif)
#          texte par un texte entre guillement court portant le nom de votre jauge (par ex "HP").
# exemple: $hp=Jauge.new(0,0,100,24,1,0,100,255,0,0,"HP")
# ici on créé un jauge $hp qui s'affiche en 0,0 (coin haut gauche) de largeur 100
# et de hauteur 24pixels, gèrer par la variable001, dont les valeurs sont comprises entre 0 et 100
# Et dont la couleur est rouge. Le texte HP apparait par au dessus de la jauge

# 2- Mise à jour de la jauge
# La mise à jour est automatique, vous n'avez qu'à changer la valeur de la variable de votre jauge
# Ainsi que l'effacement quand vous allez sur votre menu

# 3- Effacer une jauge
# Faire simplement $le_nom_de_votre_jauge.off


# Recommandations à lire
#------------------------
# 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

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

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

#============================================================================
# JAUGE
#============================================================================
class Jauge
 
  attr_accessor:value
  attr_accessor:x
  attr_accessor:y
  attr_accessor:w
  attr_accessor:h
  attr_accessor:var
  attr_accessor:r
  attr_accessor:v
  attr_accessor:b
  attr_accessor:fin_jauge
  attr_accessor:texte
 
  #--------------------------------------------------------------------------
  # INITIALIZE
  #--------------------------------------------------------------------------
  def initialize(x,y,w,h,var,min,max,r,v,b,texte)
    @x=x;@y=y;@w=w;@h=h;@var=var;@min=min;@max=max
    @r=r;@v=v;@b=b;@texte=texte
    @fin_jauge=false
    $game_party.jauges.push(self)
    @visible=true 
  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_jauge=true
  end
end

#============================================================================
# ■ Spriteset Map
#============================================================================
class Spriteset_Map
  #--------------------------------------------------------------------------
  alias jauge_spriteset_map_initialize initialize
  alias jauge_spriteset_map_dispose dispose
  alias jauge_spriteset_map_update update
 
  #--------------------------------------------------------------------------
  # INITIALIZE
  #--------------------------------------------------------------------------
  def initialize
    # Créé les jauges
    @jauge_windows=[]
    for jauge in $game_party.jauges
      setup_jauge(jauge)
    end
    jauge_spriteset_map_initialize
  end
 
  #--------------------------------------------------------------------------
  # SETUP
  #--------------------------------------------------------------------------
  def setup_jauge(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.z = 3000
    window.contents.font.name = FONT
    window.contents.font.size = TAILLE
    window.contents.font.color= Color.new(jauge.r,jauge.v,jauge.b)
    window.contents.draw_text(0,0,jauge.w, jauge.h,jauge.texte,1)
    @jauge_windows.push(window)
  end

  #--------------------------------------------------------------------------
  # UPDATE
  #--------------------------------------------------------------------------
  def update
    jauge_spriteset_map_update
    #-----------------------------
    # Cherche si une nouvelle jauge a été créée
    for key in @jauge_windows.size..$game_party.jauges.size-1
      setup_jauge($game_party.jauges[key])
    end
    #-----------------------------
    # Update la jauge
    delete_window=[]
    delete_jauge=[]
    for key in  0..$game_party.jauges.size-1
      jauge=$game_party.jauges[key]
      window=@jauge_windows[key]
      # Affiche la fenêtre de la jauge
      update_jauge(jauge, window)
      # Observe si la jauge est disposée
      if jauge.fin_jauge
        delete_window.push(window)
        delete_jauge.push(jauge)
      end
    end
    #-----------------------------
    # Dispose la jauge
    for window in delete_window
      window.dispose
      @jauge_windows.delete(window)
    end
    for jauge in delete_jauge
      $game_party.jauges.delete(jauge)
    end
  end
 
  #--------------------------------------------------------------------------
  # UPDATE JAUGE
  #--------------------------------------------------------------------------
  def update_jauge(jauge,window)
    #-----------------------------
    # Recalcule la jauge
    jauge.update
    #-----------------------------
    # Affiche un fond gris
    window.contents.fill_rect(0, TAILLE, jauge.w, jauge.h, Color.new(0, 0, 0, 100))
    #-----------------------------
    # Affiche la jauge en dégradé de la couleur choisie
    for i in 0..jauge.h/2
      r = jauge.r  * i*2/jauge.h
      g = jauge.v * i*2/jauge.h
      b = jauge.b  * i*2/jauge.h
      a = 255 * i*2/jauge.h
      window.contents.fill_rect(0, TAILLE+i, jauge.value , 1, Color.new(r, g, b, a))
    end
    for i in jauge.h/2..jauge.h
      r = jauge.r  *  (i-jauge.h).abs*2/jauge.h
      g = jauge.v *  (i-jauge.h).abs*2/jauge.h
      b = jauge.b  *  (i-jauge.h).abs*2/jauge.h
      a = 255 *  (i-jauge.h).abs*2/jauge.h
      window.contents.fill_rect(0, TAILLE+i, jauge.value , 1, Color.new(r, g, b, a))
    end
  end
 
  #--------------------------------------------------------------------------
  # DISPOSE
  #--------------------------------------------------------------------------
  def dispose
    jauge_spriteset_map_dispose
    for window in @jauge_windows
      window.dispose
    end
  end
end

Bon, j'ajoute un screen bien que de toute facon vous pouvez changer la taille, la couleur, la position, le nom
Ajouter des jauges colorées Jaugegu9
Revenir en haut Aller en bas
https://lodm.forumactif.com
 
Ajouter des jauges colorées
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Ajouter des compteurs (munition, temps)
» A mettre pour ajouter de nouvelles fonctions

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:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser