Partagez
Aller en bas
N3()
N3()
Membre

Nombre de messages : 375
Age : 27
Localisation : Oise
Distinction : aucune
Date d'inscription : 02/03/2008

Afficher une variable sur l'écran Empty Afficher une variable sur l'écran

le Ven 27 Juin 2008 - 17:53
Bonjour, je suis entrain de crée le système de combat de mon jeu (qui va resté secret encore quelque temps), et j'ai besoin d'afficher des variables sur l'écran pour la vie...
Donc j'aimerai savoir comment faire, sachant qu'il faut que j'affiche la fatigue, et la santé du ennemi (voir 4 ennemis maximum) et du héros (pareil voir 4).

Je vais mieux expliquer, en faites il me faudrait un script qui affiche la valeur d'une variable santé et que à côté on vois la santé maximum (selon le niveau), et avec une barre en dessous si possible.
Pareil pour la fatigue (=mana)

J'espère avoir été assez clair, merci d'avance pour votre aide,
N3()
Gummy
Gummy
Staffeux retraité

Nombre de messages : 2666
Age : 28
Localisation : Belgique
Distinction : Modérateur imprévisible

Papy Lolo' [Nabots Nimousse]


Date d'inscription : 27/01/2008

Afficher une variable sur l'écran Empty Re: Afficher une variable sur l'écran

le Ven 27 Juin 2008 - 21:55
Il existe un script XP mais je ne parviens plus à le trouver, dont l'auteur est Taek je pense. Il faudrait demander à un scripteur RGSS2 de voir s'il peut l'adapter, je continue mes recherches.
Ultimate
Ultimate
Membre

Nombre de messages : 105
Age : 27
Distinction : aucune
Date d'inscription : 25/06/2008
http://www.sydrus.fr

Afficher une variable sur l'écran Empty Re: Afficher une variable sur l'écran

le Ven 27 Juin 2008 - 23:37
Ha oui tiens si quelqu'un pouvait trouver ça, ça m'arrangerais bien car il se trouve que je suis AUSSI actuellement sur un projet méga secret ( en fait non c'est pour mon prochain tuto Very Happy ) qui nécessite l'affichage des variables sur l'écran.
Alexdream
Alexdream
Membre

Nombre de messages : 1400
Age : 30
Localisation : Rodez
Date d'inscription : 02/03/2008
http://alexdream.canalblog.com/

Afficher une variable sur l'écran Empty Re: Afficher une variable sur l'écran

le Sam 28 Juin 2008 - 9:08
pour cela on peut le faire en faisant appel à des images
N3()
N3()
Membre

Nombre de messages : 375
Age : 27
Localisation : Oise
Distinction : aucune
Date d'inscription : 02/03/2008

Afficher une variable sur l'écran Empty Re: Afficher une variable sur l'écran

le Sam 28 Juin 2008 - 10:41
J'ai oublier de préciser que c'était pour XP,

alex1s12 a écrit:pour cela on peut le faire en faisant appel à des images

Au début sa ira quand le héros aura 20 point de vie, mais quand il en aura 700, tu va faire 700 images?

Gamemaker a écrit:Il existe un script XP mais je ne parviens plus à le trouver, dont l'auteur est Taek je pense. Il faudrait demander à un scripteur RGSS2 de voir s'il peut l'adapter, je continue mes recherches.

Je vais chercher le script.
Berka
Berka
Administrateur

Nombre de messages : 1832
Age : 29
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

Afficher une variable sur l'écran Empty Re: Afficher une variable sur l'écran

le Sam 28 Juin 2008 - 11:05
j'ai pas mon ordi, donc pas rm sous la main:

tu devrais tenter:

Code:

VARIABLE = $game_variables[18] # change: ici on affiche la variable 18
INTERRUPTEUR = $game_switches[10] #si l'interrupteur 10 est activé, on affiche la fenetre
class Window_Variables < Window_Base
def initialize
super(0, 0, 200, 64) # tu peux changer la position de la fenetre, en modifiant ces valeurs (x, y, longueur, hauteur)
self.contents = Bitmap.new(width-32, height-32)
self.opacity = 0
refresh
end
def refresh
self.contents.clear
self.contents.draw_text(4, 0, 120, 32, VARIABLE.to_s) if INTERRUPTEUR #(x, y, longueur, hauteur, texte)
end
def update
refresh if VARIABLE != self
end
end


pour afficher la fenetre

dans le script Scene_Map
recherche

@message = Window_Message.new (ou un truc comme ca)
et rajoute apres:
@variables = Window_Variables.new

cherche: @message.dispose
et rajoute apres @variables.dispose

et cherche enfin @message.update (pas obligatoire)
et rajoute apres @variables.update


>> pour afficher la fenetre: active l'interrupteur 10
Lifa
Lifa
Membre

Nombre de messages : 95
Age : 33
Localisation : Falénia, ou bien sud-ouest de la France ^^'
Distinction : aucune
Date d'inscription : 25/06/2008
http://www.teradem.net

Afficher une variable sur l'écran Empty Re: Afficher une variable sur l'écran

le Sam 28 Juin 2008 - 17:32
Afficher des variables à l'écran m'intéresserait aussi ^^
Merci berka pour l'aide ! Mais :

J'ai essayé ce bout de RGSS2 et j'obtiens cette erreur (avant même d'arriver au menu principal) :
???? 'window_Variables' ? 1 ??? NoMethodError ????????? undefined method `[]' for nil:NilClass

J'ai fait les modifications dans Scene_Map et placé le bout de code de berka dans une nouvelle page au dessus de Main (c'est bien ce qu'il faut faire au moins ?)
Je m'y connais vraiment pas assez en ruby pour comprendre et corriger ce problème T_T
Une idée ? ^^'

Pour ma maigre participation :
@message_window = Window_Message.new >>> ligne 15
@message_window.dispose >>> ligne 37
@message_window.update >>> ligne 61
Berka
Berka
Administrateur

Nombre de messages : 1832
Age : 29
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

Afficher une variable sur l'écran Empty Re: Afficher une variable sur l'écran

le Sam 28 Juin 2008 - 18:26
désolé, c'est completement de ma faute...
j'avais oublié que les variables n'etaient initialisées qu'au titre...

voila le script fonctionnel
Code:
VARIABLE  =  18  #  change:  ici  on  affiche  la  variable  18
INTERRUPTEUR  =  10  #si  l'interrupteur  10  est  activé,  on  affiche  la  fenetre
class  Window_Variables  <  Window_Base
def  initialize
super(0,  0,  200,  64)  #  tu  peux  changer  la  position  de  la  fenetre,  en  modifiant  ces  valeurs  (x,  y,  longueur,  hauteur)
self.contents  =  Bitmap.new(width-32,  height-32)
self.opacity  =  0
refresh
end
def  refresh
self.contents.clear
self.contents.draw_text(4,  0,  120,  32,  $game_variables[VARIABLE].to_s)  if  $game_switches[ INTERRUPTEUR]  #(x,  y,  longueur,  hauteur,  texte)
end
def  update
refresh  if  32,  $game_variables[VARIABLE]  !=  self
end
end
Lifa
Lifa
Membre

Nombre de messages : 95
Age : 33
Localisation : Falénia, ou bien sud-ouest de la France ^^'
Distinction : aucune
Date d'inscription : 25/06/2008
http://www.teradem.net

Afficher une variable sur l'écran Empty Re: Afficher une variable sur l'écran

le Sam 28 Juin 2008 - 19:20
ok je commence à comprendre l'erreur ^^'
ça marche super bien maintenant Very Happy

Juste une rectification à la 2e ligne en partant du bas :
au lieu de
Code:
refresh if 32, $game_variables[VARIABLE] != self
mettre juste
Code:
refresh if $game_variables[VARIABLE] != self
(erreur de copier coller je suppose ? ^^)

J'en ai profité pour rajouter plusieurs variables à afficher et un peu de couleur.
Ca pourrait toujours servir à d'autres alors voila avec 4 variables vie,vie_max,mana,mana_max :

Code:
VARIABLE_1 = 4 # change: ici on affiche la variable 4
VARIABLE_2 = 5
VARIABLE_3 = 6
VARIABLE_4 = 7
INTERRUPTEUR = 3 # si l'interrupteur 3 est activé, on affiche la fenetre

class Window_Variables < Window_Base
  def initialize
    super(0, 0, 200, 84) # tu peux changer la position de la fenetre, en modifiant ces valeurs (x, y, longueur, hauteur)
    self.contents = Bitmap.new(width-32, height-32)
    self.opacity = 0
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.color = Color.new(255,160,160)
    self.contents.draw_text(4, 0, 180, 32, $game_variables[VARIABLE_1].to_s+" / "+$game_variables[VARIABLE_2].to_s+" PV") if $game_switches[INTERRUPTEUR] #(x, y, longueur, hauteur, texte)
    self.contents.font.color = Color.new(180,180,255)
    self.contents.draw_text(4, 30, 180, 32, $game_variables[VARIABLE_3].to_s+" / "+$game_variables[VARIABLE_4].to_s+" PM") if $game_switches[INTERRUPTEUR] #(x, y, longueur, hauteur, texte)
  end
  def update
    refresh if $game_variables[VARIABLE_1] != self
  end
end

Au sujet du refresh à la fin ça m'a pas l'air "politiquement correct" de ne tester que la variable_1 mais comme je modifie les 4 variables en même temps j'ai eu la flemme d'en faire 4 lignes ^^'
(d'ailleurs je ne sais pas non plus si c'est correct d'en mettre 1 par variable, l'est-ce ?)

Dans tous les cas merci berka ^^
Mon héros vivra peut être plus longtemps grâce à toi lol!
N3()
N3()
Membre

Nombre de messages : 375
Age : 27
Localisation : Oise
Distinction : aucune
Date d'inscription : 02/03/2008

Afficher une variable sur l'écran Empty Re: Afficher une variable sur l'écran

le Sam 28 Juin 2008 - 19:51
Merci de l'aide, j'ai pas le temps de tester ce soir, donc je testerai demain, mais juste une question:
Il faut mettre le script dans un nouveau script?
J'ai regardé un peu ce que tu m'as passé, on peux modifier la position des 4 variables? Car je 'ai vu qu'une ligne pour changer, alors qu'il y a 4 variables.
Lifa
Lifa
Membre

Nombre de messages : 95
Age : 33
Localisation : Falénia, ou bien sud-ouest de la France ^^'
Distinction : aucune
Date d'inscription : 25/06/2008
http://www.teradem.net

Afficher une variable sur l'écran Empty Re: Afficher une variable sur l'écran

le Sam 28 Juin 2008 - 20:23
Dans un nouveau script oui. Je l'ai mis dans Window_Variables en suivant le nom donné par barka à la 'class'. Juste au-dessus du main ^^

Les 4 premières lignes définissent les 4 variables, on peut changer les numéros-cibles et en rajoutant des lignes tu peux afficher de nouvelles variables (faut modifier en-dessous aussi dans ce cas.
Si tu parles de la position à l'écran, pour ma part j'ai choisi d'afficher PV et PV Max sur une même ligne (idem pour PM et PM Max), donc il n'y a que 2 lignes de code pour les 4 variables, tu peux reprendre la ligne de code d'origine de barka si tu souhaites personnaliser entièrement la position (et couleur ?) des 4 variables.


psst: berka
N3()
N3()
Membre

Nombre de messages : 375
Age : 27
Localisation : Oise
Distinction : aucune
Date d'inscription : 02/03/2008

Afficher une variable sur l'écran Empty Re: Afficher une variable sur l'écran

le Dim 29 Juin 2008 - 10:30
Il y a un problème, j'ai fait exactement tout ce que vous avez dit, et il y a rien qui s'affiche, j'ia tout vérifié plusieurs fois, et tout comme vous...
Donc ily a t'il une erreur dans le script?
Lifa
Lifa
Membre

Nombre de messages : 95
Age : 33
Localisation : Falénia, ou bien sud-ouest de la France ^^'
Distinction : aucune
Date d'inscription : 25/06/2008
http://www.teradem.net

Afficher une variable sur l'écran Empty Re: Afficher une variable sur l'écran

le Dim 29 Juin 2008 - 13:07
Chez moi ça marche en tout cas ^^'

Tu as bien modifié le Scene_Map ?
ça doit donner exactement ça (1e ligne existe déjà, 2e ligne à rajouter) :

Ligne 16/17 :
Code:
    @message_window = Window_Message.new
    @variables = Window_Variables.new

Ligne 39/40 :
Code:
    @message_window.dispose
    @variables.dispose

Lignes 64/65 :
Code:
    @message_window.update
    @variables.update


Voici la version commentée du script (pour le coup j'apprends le Ruby sur le tas ^^').
Peut-être que les commentaires rajoutés t'aideront ? :
Spoiler:
#===============================================================
# Affichage de Variables sur l'écran de jeu
# >>> Script de barka
# >>> avec la participation de Lifa
# >>> http://rpgmakervx.1fr1.net
#===============================================================

VARIABLE_1 = 4 # cette variable N°1 analysera donc la variable 4 de votre liste de variables
VARIABLE_2 = 5
VARIABLE_3 = 6
VARIABLE_4 = 7
# VARIABLE_X = Z
# vous pouvez faire afficher autant de variables que vous voulez, changer juste le X par 5,6,7,etc...
# et le Z par le numéro de la variable ciblée

INTERRUPTEUR = 3 # si l'interrupteur 3 est activé, on affiche la fenetre
# Il est aussi possible d'ajouter de nouveaux interrupteurs de déclenchement,
# par exemple pour afficher les HP/MP avec INTERRUPTEUR_1 et l'or possédé avec INTERRUPTEUR_2, etc...
# Dans ce cas il ne faut pas oublier de mettre l'interrupteur correspondant plus bas à la ligne du "draw_text" : if $game_switches[INTERRUPTEUR_X], X étant votre l'identifiant de votre interrupteur (1,2,3, etc... pas le numéro de votre liste d'interrupteurs hein ^^)

class Window_Variables < Window_Base
def initialize
super(0, 0, 200, 84) # tu peux changer la position de la fenetre, en modifiant ces valeurs (x, y, longueur, hauteur)
self.contents = Bitmap.new(width-32, height-32)
if $game_switches[INTERRUPTEUR]
self.opacity = 255 # change la transparence de la fenêtre : invisible à 0, affichage normal à 255, bref comme l'opacité classique Wink
else
self.opacity = 0
end
refresh
end
def refresh
self.contents.clear
self.contents.font.color = Color.new(255,160,160) # définit la couleur du texte qui suivra jusqu'au prochain changement de la couleur : (Rouge,Vert,Bleu). Comme d'hab, 0=rien 255=max. (255,0,0) donnera du rouge, (255,255,0)= jaune, (0,0,0)=noir, (255,255,255)=blanc, etc... comme les changements de tons d'écran ou flashs dans le jeu ^^
#pour les draw_text : (x, y, longueur, hauteur, texte). Les 2 premiers nombres donnent la position dans la fenêtre définie plus haut, les 2 suivants définissent la taille
#en 5e position, les $game_variables[VARIABLE_X].to_s affichent le contenu de VARIABLE_X (donc si VARIABLE_1 contient le n°4, il affichera le contenu de la variable 4 de votre liste de variables du jeu)
#dans un même drax_text, tout sera sur une même ligne, il suffit de séparer l'affichage de 2 variables par un espace (ou un slash, tiret, comme vous voulez l'afficher) de la façon suivante : +" / "+ (remplacez le / par ce que vous voulez afficher à l'écran ou enlevez le pour juste laisser un espace entre les 2 valeurs affichées)
self.contents.draw_text(4, 0, 180, 32, $game_variables[VARIABLE_1].to_s+" / "+$game_variables[VARIABLE_2].to_s+" PV") if $game_switches[INTERRUPTEUR]
self.contents.font.color = Color.new(180,180,255)
#vous pouvez utiliser un nouveau draw_text pour afficher vos autres variables à un autre endroit (plus bas, ou plus loin sur une même ligne, etc...)
self.contents.draw_text(4, 30, 180, 32, $game_variables[VARIABLE_3].to_s+" / "+$game_variables[VARIABLE_4].to_s+" PM") if $game_switches[INTERRUPTEUR]
end
def update
# Si vous réactualisez le contenu de toutes vos variables affichées dans un même événement de votre jeu, inutile ce copier-coller la ligne ci-dessous pour chacune des VARIABLE_X
# Si vos variables sont actualisées séparéement, alors il vaut mieux copier-coller :
refresh if $game_variables[VARIABLE_1] != self
refresh if $game_variables[VARIABLE_2] != self
refresh if $game_variables[VARIABLE_3] != self
refresh if $game_variables[VARIABLE_4] != self
end
end

En option, voici l'événement commun permettant de rafraîchir les variables (ici ça concerne 4 variables HP/MP) toutes les 1/2 secondes :
Afficher une variable sur l'écran Actualiservariablesub4

Enfin, un exemple du résultat final :
Afficher une variable sur l'écran Windowvariablesxm2.th

Et si avec ça ça marche toujours pas je t'envoie une démo lol!

edit : problème d'opacité de la nouvelle fenêtre corrigé.
N3()
N3()
Membre

Nombre de messages : 375
Age : 27
Localisation : Oise
Distinction : aucune
Date d'inscription : 02/03/2008

Afficher une variable sur l'écran Empty Re: Afficher une variable sur l'écran

le Dim 29 Juin 2008 - 15:12
Marche toujours pas,
voici mon script Scene_Map:
Spoiler:
Code:
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
#  マップ画面の処理を行うクラスです。
#==============================================================================

class Scene_Map
  #--------------------------------------------------------------------------
  # ● メイン処理
  #--------------------------------------------------------------------------
  def main
    # スプライトセットを作成
    @spriteset = Spriteset_Map.new
    # メッセージウィンドウを作成
    @message_window = Window_Message.new
    @variables = Window_Variables.new
    # トランジション実行
    Graphics.transition
    # メインループ
    loop do
      # ゲーム画面を更新
      Graphics.update
      # 入力情報を更新
      Input.update
      # フレーム更新
      update
      # 画面が切り替わったらループを中断
      if $scene != self
        break
      end
    end
    # トランジション準備
    Graphics.freeze
    # スプライトセットを解放
    @spriteset.dispose
    # メッセージウィンドウを解放
    @message_window.dispose
    @variables.dispose
    # タイトル画面に切り替え中の場合
    if $scene.is_a?(Scene_Title)
      # 画面をフェードアウト
      Graphics.transition
      Graphics.freeze
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    # ループ
    loop do
      # マップ、インタプリタ、プレイヤーの順に更新
      # (この更新順序は、イベントを実行する条件が満たされているときに
      #  プレイヤーに一瞬移動する機会を与えないなどの理由で重要)
      $game_map.update
      $game_system.map_interpreter.update
      $game_player.update
      # システム (タイマー)、画面を更新
      $game_system.update
      $game_screen.update
      # プレイヤーの場所移動中でなければループを中断
      unless $game_temp.player_transferring
        break
      end
      # 場所移動を実行
      transfer_player
      # トランジション処理中の場合、ループを中断
      if $game_temp.transition_processing
        break
      end
    end
    # スプライトセットを更新
    @spriteset.update
    # メッセージウィンドウを更新
    @message_window.update
    @variables.update
    # ゲームオーバーの場合
    if $game_temp.gameover

Je te le montre pas entier il est trop long
 


Le script pour les variables:

Spoiler:
Code:
#===============================================================
# Affichage de Variables sur l'écran de jeu
# >>> Script de barka
# >>> avec la participation de Lifa
# >>> http://rpgmakervx.1fr1.net
#===============================================================

VARIABLE_1 = 4 # cette variable N°1 analysera donc la variable 4 de votre liste de variables
VARIABLE_2 = 5
VARIABLE_3 = 6
VARIABLE_4 = 7
# VARIABLE_X = Z
# vous pouvez faire afficher autant de variables que vous voulez, changer juste le X par 5,6,7,etc...
# et le Z par le numéro de la variable ciblée

INTERRUPTEUR = 3 # si l'interrupteur 3 est activé, on affiche la fenetre
# Il est aussi possible d'ajouter de nouveaux interrupteurs de déclenchement,
# par exemple pour afficher les HP/MP avec INTERRUPTEUR_1 et l'or possédé avec INTERRUPTEUR_2, etc...
# Dans ce cas il ne faut pas oublier de mettre l'interrupteur correspondant plus bas à la ligne du "draw_text" : if $game_switches[INTERRUPTEUR_X], X étant votre l'identifiant de votre interrupteur (1,2,3, etc... pas le numéro de votre liste d'interrupteurs hein ^^)

class Window_Variables < Window_Base
def initialize
super(0, 0, 200, 84) # tu peux changer la position de la fenetre, en modifiant ces valeurs (x, y, longueur, hauteur)
self.contents = Bitmap.new(width-32, height-32)
if $game_switches[INTERRUPTEUR]
self.opacity = 255 # change la transparence de la fenêtre : invisible à 0, affichage normal à 255, bref comme l'opacité classique
else
self.opacity = 0
end
refresh
end
def refresh
self.contents.clear
self.contents.font.color = Color.new(255,160,160) # définit la couleur du texte qui suivra jusqu'au prochain changement de la couleur : (Rouge,Vert,Bleu). Comme d'hab, 0=rien 255=max. (255,0,0) donnera du rouge, (255,255,0)= jaune, (0,0,0)=noir, (255,255,255)=blanc, etc... comme les changements de tons d'écran ou flashs dans le jeu ^^
#pour les draw_text : (x, y, longueur, hauteur, texte). Les 2 premiers nombres donnent la position dans la fenêtre définie plus haut, les 2 suivants définissent la taille
#en 5e position, les $game_variables[VARIABLE_X].to_s affichent le contenu de VARIABLE_X (donc si VARIABLE_1 contient le n°4, il affichera le contenu de la variable 4 de votre liste de variables du jeu)
#dans un même drax_text, tout sera sur une même ligne, il suffit de séparer l'affichage de 2 variables par un espace (ou un slash, tiret, comme vous voulez l'afficher) de la façon suivante : +" / "+ (remplacez le / par ce que vous voulez afficher à l'écran ou enlevez le pour juste laisser un espace entre les 2 valeurs affichées)
self.contents.draw_text(4, 0, 180, 32, $game_variables[VARIABLE_1].to_s+" / "+$game_variables[VARIABLE_2].to_s+" PV") if $game_switches[INTERRUPTEUR]
self.contents.font.color = Color.new(180,180,255)
#vous pouvez utiliser un nouveau draw_text pour afficher vos autres variables à un autre endroit (plus bas, ou plus loin sur une même ligne, etc...)
self.contents.draw_text(4, 30, 180, 32, $game_variables[VARIABLE_3].to_s+" / "+$game_variables[VARIABLE_4].to_s+" PM") if $game_switches[INTERRUPTEUR]
end
def update
# Si vous réactualisez le contenu de toutes vos variables affichées dans un même événement de votre jeu, inutile ce copier-coller la ligne ci-dessous pour chacune des VARIABLE_X
# Si vos variables sont actualisées séparéement, alors il vaut mieux copier-coller :
refresh if $game_variables[VARIABLE_1] != self
refresh if $game_variables[VARIABLE_2] != self
refresh if $game_variables[VARIABLE_3] != self
refresh if $game_variables[VARIABLE_4] != self
end
end

L'event commun est pareil que le tien, et l'interrupteur trois activé.
Lifa
Lifa
Membre

Nombre de messages : 95
Age : 33
Localisation : Falénia, ou bien sud-ouest de la France ^^'
Distinction : aucune
Date d'inscription : 25/06/2008
http://www.teradem.net

Afficher une variable sur l'écran Empty Re: Afficher une variable sur l'écran

le Dim 29 Juin 2008 - 16:51
Curieux, on a pas le même Scene_Map *__*
je ne me souviens pas l'avoir modifié pourtant. Et toi ?

Tu travailles bien sous RPG Maker VX ???

Pour ma part j'ai la version officielle 1.00, version FR 1.1 (traduit par Nino)
je sais pas si ça peut jouer...
Voici mon Scene_Map entier :

Spoiler:
#==============================================================================
# * Scene_Map
# >>> Avec modifications ligne 17, 40 et 65 pour l'utilisation du script Window_Variables
#------------------------------------------------------------------------------
#  マップ画面の処理を行うクラスです。
#==============================================================================

class Scene_Map < Scene_Base
#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
def start
super
$game_map.refresh
@spriteset = Spriteset_Map.new
@message_window = Window_Message.new
@variables = Window_Variables.new
end
#--------------------------------------------------------------------------
# ● トランジション実行
#--------------------------------------------------------------------------
def perform_transition
if Graphics.brightness == 0 # 戦闘後、ロード直後など
fadein(30)
else # メニューからの復帰など
Graphics.transition(15)
end
end
#--------------------------------------------------------------------------
# ● 終了処理
#--------------------------------------------------------------------------
def terminate
super
if $scene.is_a?(Scene_Battle) # バトル画面に切り替え中の場合
@spriteset.dispose_characters # 背景作成のためにキャラを隠す
end
snapshot_for_background
@spriteset.dispose
@message_window.dispose
@variables.dispose
if $scene.is_a?(Scene_Battle) # バトル画面に切り替え中の場合
perform_battle_transition # 戦闘前トランジション実行
end
end
#--------------------------------------------------------------------------
# ● 基本更新処理
#--------------------------------------------------------------------------
def update_basic
Graphics.update # ゲーム画面を更新
Input.update # 入力情報を更新
$game_map.update # マップを更新
@spriteset.update # スプライトセットを更新
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
super
$game_map.interpreter.update # インタプリタを更新
$game_map.update # マップを更新
$game_player.update # プレイヤーを更新
$game_system.update # タイマーを更新
@spriteset.update # スプライトセットを更新
@message_window.update # メッセージウィンドウを更新
@variables.update
unless $game_message.visible # メッセージ表示中以外
update_transfer_player
update_encounter
update_call_menu
update_call_debug
update_scene_change
end
end
#--------------------------------------------------------------------------
# ● 画面のフェードイン
# duration : 時間
# マップ画面では、Graphics.fadeout を直接使うと天候エフェクトや遠景のス
# クロールなどが止まるなどの不都合があるため、動的にフェードインを行う。
#--------------------------------------------------------------------------
def fadein(duration)
Graphics.transition(0)
for i in 0..duration-1
Graphics.brightness = 255 * i / duration
update_basic
end
Graphics.brightness = 255
end
#--------------------------------------------------------------------------
# ● 画面のフェードアウト
# duration : 時間
# 上記のフェードインと同じく、Graphics.fadein は直接使わない。
#--------------------------------------------------------------------------
def fadeout(duration)
Graphics.transition(0)
for i in 0..duration-1
Graphics.brightness = 255 - 255 * i / duration
update_basic
end
Graphics.brightness = 0
end
#--------------------------------------------------------------------------
# ● 場所移動の処理
#--------------------------------------------------------------------------
def update_transfer_player
return unless $game_player.transfer?
fade = (Graphics.brightness > 0)
fadeout(30) if fade
@spriteset.dispose # スプライトセットを解放
$game_player.perform_transfer # 場所移動の実行
$game_map.autoplay # BGM と BGS の自動切り替え
$game_map.update
Graphics.wait(15)
@spriteset = Spriteset_Map.new # スプライトセットを再作成
fadein(30) if fade
Input.update
end
#--------------------------------------------------------------------------
# ● エンカウントの処理
#--------------------------------------------------------------------------
def update_encounter
return if $game_player.encounter_count > 0 # 遭遇歩数未満?
return if $game_map.interpreter.running? # イベント実行中?
return if $game_system.encounter_disabled # エンカウント禁止中?
troop_id = $game_player.make_encounter_troop_id # 敵グループを決定
return if $data_troops[troop_id] == nil # 敵グループが無効?
$game_troop.setup(troop_id)
$game_troop.can_escape = true
$game_temp.battle_proc = nil
$game_temp.next_scene = "battle"
preemptive_or_surprise
end
#--------------------------------------------------------------------------
# ● 先制攻撃と不意打ちの確率判定
#--------------------------------------------------------------------------
def preemptive_or_surprise
actors_agi = $game_party.average_agi
enemies_agi = $game_troop.average_agi
if actors_agi >= enemies_agi
percent_preemptive = 5
percent_surprise = 3
else
percent_preemptive = 3
percent_surprise = 5
end
if rand(100) < percent_preemptive
$game_troop.preemptive = true
elsif rand(100) < percent_surprise
$game_troop.surprise = true
end
end
#--------------------------------------------------------------------------
# ● キャンセルボタンによるメニュー呼び出し判定
#--------------------------------------------------------------------------
def update_call_menu
if Input.trigger?(Input::B)
return if $game_map.interpreter.running? # イベント実行中?
return if $game_system.menu_disabled # メニュー禁止中?
$game_temp.menu_beep = true # SE 演奏フラグ設定
$game_temp.next_scene = "menu"
end
end
#--------------------------------------------------------------------------
# ● F9 キーによるデバッグ呼び出し判定
#--------------------------------------------------------------------------
def update_call_debug
if $TEST and Input.press?(Input::F9) # テストプレイ中 F9 キー
$game_temp.next_scene = "debug"
end
end
#--------------------------------------------------------------------------
# ● 画面切り替えの実行
#--------------------------------------------------------------------------
def update_scene_change
return if $game_player.moving? # プレイヤーの移動中?
case $game_temp.next_scene
when "battle"
call_battle
when "shop"
call_shop
when "name"
call_name
when "menu"
call_menu
when "save"
call_save
when "debug"
call_debug
when "gameover"
call_gameover
when "title"
call_title
else
$game_temp.next_scene = nil
end
end
#--------------------------------------------------------------------------
# ● バトル画面への切り替え
#--------------------------------------------------------------------------
def call_battle
@spriteset.update
Graphics.update
$game_player.make_encounter_count
$game_player.straighten
$game_temp.map_bgm = RPG::BGM.last
$game_temp.map_bgs = RPG::BGS.last
RPG::BGM.stop
RPG::BGS.stop
Sound.play_battle_start
$game_system.battle_bgm.play
$game_temp.next_scene = nil
$scene = Scene_Battle.new
end
#--------------------------------------------------------------------------
# ● ショップ画面への切り替え
#--------------------------------------------------------------------------
def call_shop
$game_temp.next_scene = nil
$scene = Scene_Shop.new
end
#--------------------------------------------------------------------------
# ● 名前入力画面への切り替え
#--------------------------------------------------------------------------
def call_name
$game_temp.next_scene = nil
$scene = Scene_Name.new
end
#--------------------------------------------------------------------------
# ● メニュー画面への切り替え
#--------------------------------------------------------------------------
def call_menu
if $game_temp.menu_beep
Sound.play_decision
$game_temp.menu_beep = false
end
$game_temp.next_scene = nil
$scene = Scene_Menu.new
end
#--------------------------------------------------------------------------
# ● セーブ画面への切り替え
#--------------------------------------------------------------------------
def call_save
$game_temp.next_scene = nil
$scene = Scene_File.new(true, false, true)
end
#--------------------------------------------------------------------------
# ● デバッグ画面への切り替え
#--------------------------------------------------------------------------
def call_debug
Sound.play_decision
$game_temp.next_scene = nil
$scene = Scene_Debug.new
end
#--------------------------------------------------------------------------
# ● ゲームオーバー画面への切り替え
#--------------------------------------------------------------------------
def call_gameover
$game_temp.next_scene = nil
$scene = Scene_Gameover.new
end
#--------------------------------------------------------------------------
# ● タイトル画面への切り替え
#--------------------------------------------------------------------------
def call_title
$game_temp.next_scene = nil
$scene = Scene_Title.new
fadeout(60)
end
#--------------------------------------------------------------------------
# ● 戦闘前トランジション実行
#--------------------------------------------------------------------------
def perform_battle_transition
Graphics.transition(80, "Graphics/System/BattleStart", 80)
Graphics.freeze
end
end
N3()
N3()
Membre

Nombre de messages : 375
Age : 27
Localisation : Oise
Distinction : aucune
Date d'inscription : 02/03/2008

Afficher une variable sur l'écran Empty Re: Afficher une variable sur l'écran

le Dim 29 Juin 2008 - 18:41
Non j'ai précisé avant que c'était pour XP, c'est pour sa que ça marche pas non?
Widowan
Widowan
Fondateur
Nombre de messages : 1435
Age : 37
Localisation : France
Distinction : Sergent
Tyran professionnel
Date d'inscription : 15/12/2007
https://www.rpgmakervx-fr.com

Afficher une variable sur l'écran Empty Re: Afficher une variable sur l'écran

le Dim 29 Juin 2008 - 18:56
La prochaine fois, indique le dans le titre, on est sur RMVX à la base ........ xD

_________________
"Si le monde appartiens à ceux qui se lèvent tôt, et si le royaume des cieux est destiné aux simples d'esprit, alors j'essaye juste de squatter un peu..."
Lifa
Lifa
Membre

Nombre de messages : 95
Age : 33
Localisation : Falénia, ou bien sud-ouest de la France ^^'
Distinction : aucune
Date d'inscription : 25/06/2008
http://www.teradem.net

Afficher une variable sur l'écran Empty Re: Afficher une variable sur l'écran

le Dim 29 Juin 2008 - 19:52
En effet c'est pour ça que ça marche pas alors ^^'
Désolé j'ai zappé le message où tu précisais que c'était XP...

Bah en tout cas ça pourra toujours servir aux utilisateur de VX Afficher une variable sur l'écran 450709
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum