ウィンドウ表示方法

著 2009/11/23



上の様な感じで好きな場所にウィンドウを表示する方法です。
ぶっちゃけサンプルゲーム「白い絆」のスクリプトを覗いててこの方法が分かった。 感謝!


最初に、スクリプトエディタでScene_DebugとMainの間に新しいセクションを作ります。

その中に以下の文を書く↓
#===================================================
# 「自作ウィンドウ」?の表示
#===================================================
class Itibanme_Windowdesu < Window_Base
#----------------------------------------------------------------
# ● オブジェクト初期化 #-----------------------------------------------------------------
def initialize
# x : ウィンドウの X 座標
# y : ウィンドウの Y 座標
# width : ウィンドウの幅
# height : ウィンドウの高さ
@sel=Window_Base.new(0,230,320,112) #ウィンドウを生成(X座標,Y座標,幅,高さ)
@sel.opacity=224 #ウィンドウ枠の不透明度 (0 〜 255)
@sel.back_opacity=144 #ウィンドウ背景の不透明度 (0 〜 255)
@sel.contents_opacity=255 #ウィンドウ内容の不透明度 (0 〜 255)
#↓文字を書くためのタイル
@sel.contents=Bitmap.new(288,80) #Bitmap オブジェクトを生成(width, height)(288,80)

end

#ウィンドウ消去
def syoukyo
@sel.dispose
end

#ウィンドウの更新
def kousin1
# x : ウィンドウの X 座標
# y : ウィンドウの Y 座標
# width : ウィンドウの幅
# height : ウィンドウの高さ
@sel.contents.clear
@sel.contents.font.color=normal_color
@sel.contents.font.size=16
@sel.contents.draw_text(0,0,288,24,"主1")
@sel.contents.draw_text(0,16,288,24,"HP")
@sel.contents.draw_text(0,32,288,24,"スタミナ")

@sel.contents.draw_text(70,16,96,24,$game_variables[278].to_s)
#主1現在HP
@sel.contents.draw_text(110,16,96,24,"/")
@sel.contents.draw_text(120,16,96,24,$game_variables[279].to_s)
#主1最大HP

@sel.contents.draw_text(80,32,96,24,$game_variables[280].to_s) #主1現在スタミナ
@sel.contents.draw_text(110,32,96,24,"/")
@sel.contents.draw_text(120,32,96,24,$game_variables[281].to_s)
#主1最大スタミナ
end
end

青文字部分は好きに変えてください。少し説明しますと、 $game_variables[278]は変数の278番目です。イベントコマンドで278番目の変数を覗いて見てください。その値が入ります。 その後ろの .to_s は数字情報である変数を文字列に変換しています。

では、実際にウィンドウを表示してみましょう。イベントコマンドのスクリプトに書いてもOKです。
HP_01 = Itibanme_Windowdesu.new
HP_01.kousin1
を書く。
「HP_01」というのは表示するウィンドウに付けた名前です。好きに変えてください。


表示されましたか?

ウィンドウ内を更新する場合、HP_01.kousin1 を書きます。
$game_variables[278]=1 などに変数の値を変え、 HP_01.kousin1 で更新したり、まあ、遊んでみてください。

※な〜んか何秒か経つと勝手にウィンドウが消える時があるので、繰り返し更新しておいた方が良いかも。
(スクリプトエディタ内で)
loop do
HP_01.kousin1
end
です。又は、どっかのイベントの中にHP_01.kousin1を入れ並列処理させても同じですね。そうすれば値や文字が変わった時に、すぐにウィンドウ内が更新されます。

ウィンドウを消去する時は、
HP_01.syoukyo
です。


戻る

Copyright © 2009-2020 Aioa All Rights Reserved.