- N3()Membre
- Nombre de messages : 375
Age : 31
Localisation : Oise
Distinction : aucune
Date d'inscription : 02/03/2008
Afficher une variable sur l'écran
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()
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()
- GummyStaffeux retraité
- Nombre de messages : 2666
Age : 32
Localisation : Belgique
Distinction : Modérateur imprévisible
Papy Lolo' [Nabots Nimousse]
Date d'inscription : 27/01/2008
Re: Afficher une variable sur l'écran
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.
Re: Afficher une variable sur l'écran
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 ) qui nécessite l'affichage des variables sur l'écran.
Re: Afficher une variable sur l'écran
Sam 28 Juin 2008 - 9:08
pour cela on peut le faire en faisant appel à des images
- N3()Membre
- Nombre de messages : 375
Age : 31
Localisation : Oise
Distinction : aucune
Date d'inscription : 02/03/2008
Re: Afficher une variable sur l'écran
Sam 28 Juin 2008 - 10:41
J'ai oublier de préciser que c'était pour XP,
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?
Je vais chercher le script.
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.
Re: Afficher une variable sur l'écran
Sam 28 Juin 2008 - 11:05
j'ai pas mon ordi, donc pas rm sous la main:
tu devrais tenter:
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
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
Re: Afficher une variable sur l'écran
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) :
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
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
Re: Afficher une variable sur l'écran
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
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
Re: Afficher une variable sur l'écran
Sam 28 Juin 2008 - 19:20
ok je commence à comprendre l'erreur ^^'
ça marche super bien maintenant
Juste une rectification à la 2e ligne en partant du bas :
au lieu de
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 :
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
ça marche super bien maintenant
Juste une rectification à la 2e ligne en partant du bas :
au lieu de
- Code:
refresh if 32, $game_variables[VARIABLE] != self
- Code:
refresh if $game_variables[VARIABLE] != self
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
- N3()Membre
- Nombre de messages : 375
Age : 31
Localisation : Oise
Distinction : aucune
Date d'inscription : 02/03/2008
Re: Afficher une variable sur l'écran
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.
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.
Re: Afficher une variable sur l'écran
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
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()Membre
- Nombre de messages : 375
Age : 31
Localisation : Oise
Distinction : aucune
Date d'inscription : 02/03/2008
Re: Afficher une variable sur l'écran
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?
Donc ily a t'il une erreur dans le script?
Re: Afficher une variable sur l'écran
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 :
Ligne 39/40 :
Lignes 64/65 :
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 ? :
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 :
Enfin, un exemple du résultat final :
Et si avec ça ça marche toujours pas je t'envoie une démo
edit : problème d'opacité de la nouvelle fenêtre corrigé.
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
# >>> https://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
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 :
Enfin, un exemple du résultat final :
Et si avec ça ça marche toujours pas je t'envoie une démo
edit : problème d'opacité de la nouvelle fenêtre corrigé.
- N3()Membre
- Nombre de messages : 375
Age : 31
Localisation : Oise
Distinction : aucune
Date d'inscription : 02/03/2008
Re: Afficher une variable sur l'écran
Dim 29 Juin 2008 - 15:12
Marche toujours pas,
voici mon script Scene_Map:
Le script pour les variables:
L'event commun est pareil que le tien, et l'interrupteur trois activé.
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é.
Re: Afficher une variable sur l'écran
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 :
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()Membre
- Nombre de messages : 375
Age : 31
Localisation : Oise
Distinction : aucune
Date d'inscription : 02/03/2008
Re: Afficher une variable sur l'écran
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?
Re: Afficher une variable sur l'écran
Dim 29 Juin 2008 - 18:56
La prochaine fois, indique le dans le titre, on est sur RMVX à la base ........ xD
Re: Afficher une variable sur l'écran
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
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
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|