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 : -29%
PC portable – MEDION 15,6″ FHD Intel i7 ...
Voir le deal
499.99 €

 

 Ajouter des compteurs (munition, temps)

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 compteurs (munition, temps) Empty
MessageSujet: Ajouter des compteurs (munition, temps)   Ajouter des compteurs (munition, temps) Icon_minitimeDim 25 Fév - 5:52

Bonjour

Avec ce script vous pourrez facilement gérer:
- Un compteur de flèche/bombe vec une icone
- Une chronomètre ou décompte
- Des compteur d'argent
etc etc


Ce script vous permettra de créer plusieurs compteurs:
- à l'emplacement que vous voulez sur l'ecran
- avec une icone choisie
- avec un texte devant

Le compteur est géré 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. De même la gestion de l'effacement et de l'affichage se fait automatiquement lorsque vous quittez la map vers un menu, ou lorsque vous revenez sur la map

Voici le script appelez le Compteur et mettez le au dessus de main.
Des explications sont indiquées en en-tête pour créer votre premièr compteur, lisez les attentivement.

bon making


Code:
#============================================================================
# SCRIPT COMPTEUR
# 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'un compteur sours forme d'une icone avec un nombre et un titre

# 1- Créer un compteur en event
# Faire inserer script: $compteur = Compteur.new(x,y,var,"icone","texte")
# Remplacer $compteur par $le_nom_de_votre_compteur
#          x et y par les coordonnées ecran ou s'affichent votre compteur
#          var par le numéro de votre variable qui contrôle la compteur
#          "icone" par le nom de votre icone que vou savez importé dans le dossier Icons,
#          texte par un texte entre "guillement" court portant le nom de votre compteur (par ex "Ammo").
# exemple: $ammo=compteur.new(0,0,2,"005-Weapon05","Fleches")
# ici on créé un compteur $ammo qui s'affiche en 0,0 (coin haut gauche)
# , gèrer par la variable002 avec le texte "Fleches" devant

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

# 3- Effacer une compteur
# Faire simplement $le_nom_de_votre_compteur.off


# Recommandations à lire
#------------------------
# 1- Vous pouvez changer la taille de la Police et la couleur de tous les compteurs ici:
FONT="Arial"
TAILLE=16
COLOR=Color.new(0,0,0,255)

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

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

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

#5- Les compteurs s'effacent tous seul quand vous sortez de la map vers un menu, et il se recrée seul quand vous revenez sur la map
#============================================================================

#============================================================================
# COMPTEURS
# Créé le tableau des compteurs de Jeu
#============================================================================
class Game_Party
  attr_accessor:compteurs
  alias compteur_game_party_initialize initialize
  #--------------------------------------------------------------------------
  # INITIALIZE
  #--------------------------------------------------------------------------
  def initialize
    compteur_game_party_initialize
    # Tableau des compteurs
    @compteurs=[]
  end
end

#============================================================================
# COMPTEUR
#============================================================================
class Compteur
 
  attr_accessor:x                # Coordonnées d'affichage
  attr_accessor:y
  attr_accessor:var              # Numéro de la variable RMXP
  attr_accessor:value            # Valeur de la variable RMXP
  attr_accessor:texte            # Texte devant l'icone
  attr_accessor:icone            # nom de l'icone dans le dossier Icons
  attr_accessor:fin_compteur      # Indique la fin du compteur
 
  #--------------------------------------------------------------------------
  # INITIALIZE
  #--------------------------------------------------------------------------
  def initialize(x,y,var,icone,texte)
    @x=x;@y=y;@var=var;@icone=icone;@texte=texte
    @fin_compteur=false
    $game_party.compteurs.push(self)
    @visible=true
    @value=$game_variables[@var]
  end
 
  #--------------------------------------------------------------------------
  # UPDATE
  #--------------------------------------------------------------------------
  def update
    @value=$game_variables[@var]
  end

  #--------------------------------------------------------------------------
  # OFF
  # Termine le compteur
  #--------------------------------------------------------------------------
  def off
    @fin_compteur=true
  end
end

#============================================================================
# ■ Spriteset Map
# Mise à jour de la class Spriteset_Map afin de gérer l'affichage graphique
#============================================================================
class Spriteset_Map
  #--------------------------------------------------------------------------
  alias compteur_spriteset_map_initialize initialize
  alias compteur_spriteset_map_dispose dispose
  alias compteur_spriteset_map_update update
 
  #--------------------------------------------------------------------------
  # INITIALIZE
  #--------------------------------------------------------------------------
  def initialize
    # Créé les compteurs
    @compteur_sprite=[]
    for compteur in $game_party.compteurs
      setup_compteur(compteur)
    end
    compteur_spriteset_map_initialize
  end
 
  #--------------------------------------------------------------------------
  # SETUP
  #--------------------------------------------------------------------------
  def setup_compteur(compteur)
    # Créé le sprite en fonction de la taille de la police
    sprite=Sprite.new
    sprite.bitmap=Bitmap.new(24+3*TAILLE+compteur.texte.size*TAILLE,[TAILLE,24].max)
    # Récupère l'icone
    bitmap=Bitmap.new(24,24)
    bitmap = RPG::Cache.icon(compteur.icone)
    # Construit le sprite
    sprite.bitmap.blt(compteur.texte.size*TAILLE,0,bitmap,Rect.new(0,0,24,24))
    sprite.bitmap.font.color= Color.new(0,0,0)
    sprite.z = 3000
    sprite.x = compteur.x
    sprite.y = compteur.y
    sprite.bitmap.font.name = FONT 
    sprite.bitmap.font.size = TAILLE
    sprite.bitmap.font.color= COLOR
    sprite.bitmap.draw_text(0,0,compteur.texte.size*TAILLE, [TAILLE,24].max,compteur.texte,0)
    @compteur_sprite.push(sprite)
  end

  #--------------------------------------------------------------------------
  # UPDATE
  #--------------------------------------------------------------------------
  def update
    compteur_spriteset_map_update
    #-----------------------------
    # Cherche si une nouvelle compteur a été créée
    for key in @compteur_sprite.size..$game_party.compteurs.size-1
      setup_compteur($game_party.compteurs[key])
    end
    #-----------------------------
    # Update la compteur
    delete_sprite=[]
    delete_compteur=[]
    for key in  0..$game_party.compteurs.size-1
      compteur=$game_party.compteurs[key]
      sprite=@compteur_sprite[key]
      # Récupère la valeur du compteur
      compteur.update
      # Rafraichit le sprite
      sprite.bitmap.clear
      bitmap=Bitmap.new(24,24)
      bitmap = RPG::Cache.icon(compteur.icone)
      # Affiche l'icone
      sprite.bitmap.blt(compteur.texte.size*TAILLE,0,bitmap,Rect.new(0,0,24,24))
      # Affiche le titre
      sprite.bitmap.draw_text(0,0,compteur.texte.size*TAILLE, [TAILLE,24].max,compteur.texte,1)
      # Affiche le Compteur
      sprite.bitmap.draw_text(compteur.texte.size*TAILLE+24,0,compteur.texte.size*TAILLE, [TAILLE,24].max,compteur.value.to_s,1)
      # Observe si la compteur est disposée
      if compteur.fin_compteur
        delete_sprite.push(sprite)
        delete_compteur.push(compteur)
      end
    end
    #-----------------------------
    # Dispose la compteur
    for sprite in delete_sprite
      sprite.dispose
      @compteur_sprite.delete(sprite)
    end
    for compteur in delete_compteur
      $game_party.compteurs.delete(compteur)
    end
  end

  #--------------------------------------------------------------------------
  # DISPOSE
  #--------------------------------------------------------------------------
  def dispose
    compteur_spriteset_map_dispose
    for sprite in @compteur_sprite
      sprite.dispose
    end
  end
end

Enfin, un screen pour avoir un exemple
Ajouter des compteurs (munition, temps) Compteurer2
Revenir en haut Aller en bas
https://lodm.forumactif.com
 
Ajouter des compteurs (munition, temps)
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» 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