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 du moment :
Cartes Pokémon 151 : où trouver le ...
Voir le deal

 

 Ajouter des jauges colorées avec degradé horinzontal

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 avec degradé horinzontal Empty
MessageSujet: Ajouter des jauges colorées avec degradé horinzontal   Ajouter des jauges colorées avec degradé horinzontal Icon_minitimeDim 15 Avr - 9:36

Hello

Toujours dans l'esprit d'ajouter des jauges automatiques dans RM
, voici une autre version qui vous permet de faire un dégradé d'une couleur que vous choississez vers une autre

Comme il y a beaucoup de parametre a mettre dans bvotre inserer script, veuillez à ne pas couper la ligne de code, RM n'aime pas et génèrera une erreur de syntaxe. Si la ligne est coupé, mettez en forme votre code ainsi

exemple (coupé après une virgule)

$hp=JaugeH.new(320,0,100,24,1,0,100,"hp",
255,0,0,
0,0,255)

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. La couleur de la jauge s'affiche en dégradé horizontal
# du couleur que vous choississez vers une autre

# 1- Créer un jauge en event
# Faire inserer script: $jauge = Jauge.new(x,y,w,h,var,min,max,"texte"r,v,b,r1,v1,b1)
# 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)
#          texte par un texte entre guillement court portant le nom de votre jauge (par ex "HP").
#          r,v,b (depart du dégradé) par les composantes (0a255) rouge, vert, bleu de la couleur de votre jauge (par ex 255,0,0 donne du rouge vif)
#          r1,v1,b1 (arrivée du dégradé) par les composantes (0a255) rouge, vert, bleu de la couleur de votre jauge (par ex 255,0,0 donne du rouge vif)
#            la taille et la font du texte sont celle de base de votre projet
# exemple: $hp=Jauge.new(0,0,100,24,1,0,100,"HP",255,0,0,0,0,255)
# 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
# Le texte HP apparait par au dessus de la jauge
# La jauge s'affiche en dégradé du rouge (255,0,0) vers le bleu (0,0,255)

# 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 jauge2_game_party_initialize initialize
  #--------------------------------------------------------------------------
  # INITIALIZE
  #--------------------------------------------------------------------------
  def initialize
    jauge2_game_party_initialize
    # Tableau des jauges
    @jauges=[]
  end
end

#============================================================================
# JAUGE avec dégradé horizontal
#============================================================================
class JaugeH
 
  attr_accessor:value
  attr_accessor:x
  attr_accessor:y
  attr_accessor:w
  attr_accessor:r
  attr_accessor:v
  attr_accessor:b
  attr_accessor:r1
  attr_accessor:v1
  attr_accessor:b1
  attr_accessor:h
  attr_accessor:var
  attr_accessor:min
  attr_accessor:max
  attr_accessor:texte
  attr_accessor:fin_jauge

  #--------------------------------------------------------------------------
  # INITIALIZE
  #--------------------------------------------------------------------------
  def initialize(x,y,w,h,var,min,max,texte,r,v,b,r1,v1,b1)
    @x=x;@y=y;@w=w;@h=h;@var=var;@min=min;@max=max
    @r=r;@v=v;@b=b;@texte=texte
    @r1=r1;@v1=v1;@b1=b1
    @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 jauge2_spriteset_map_initialize initialize
  alias jauge2_spriteset_map_dispose dispose
  alias jauge2_spriteset_map_update update
 
  #--------------------------------------------------------------------------
  # INITIALIZE
  #--------------------------------------------------------------------------
  def initialize
    # Créé les jauges
    @jauge_windows=[]
    for jauge in $game_party.jauges
      setup_jauge(jauge)
    end
    jauge2_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.draw_text(0,0,jauge.w, jauge.h,jauge.texte,1)
    @jauge_windows.push(window)
  end

  #--------------------------------------------------------------------------
  # UPDATE
  #--------------------------------------------------------------------------
  def update
    jauge2_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.value
      r = (jauge.r1-jauge.r) * i/(jauge.max-jauge.min)+jauge.r
      g = (jauge.v1-jauge.v) * i/(jauge.max-jauge.min)+jauge.v
      b = (jauge.b1-jauge.b)  * i/(jauge.max-jauge.min)+jauge.b
      window.contents.fill_rect(i, TAILLE, 1,jauge.h , Color.new(r, g, b, 255))
    end
  end
 
 
  #--------------------------------------------------------------------------
  # DISPOSE
  #--------------------------------------------------------------------------
  def dispose
    jauge2_spriteset_map_dispose
    for window in @jauge_windows
      window.dispose
    end
  end
end
Revenir en haut Aller en bas
https://lodm.forumactif.com
 
Ajouter des jauges colorées avec degradé horinzontal
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Ajouter des compteurs (munition, temps)
» A mettre pour ajouter de nouvelles fonctions
» Plus de 50 images avec RMXP

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