第8回 ウィンドウクラスを作ろう!

 2008-05-25
前回で紹介したパーティの顔グラを表示するウィンドウを作成したいと思います。


まずは、ウィンドウを表示する機能を作ります。
これは、1度説明したのでわかると思います。

1.クラス名を決める
class Window_Fase < Window_Base
end
これで、Window_Fase というクラスができました。
ウィンドウの表示や顔グラの描画機能は、このクラス内に記述します。

2.ウィンドウを表示する
ウィンドウの表示は Window_Base で実装されています。
ですので、継承元クラスを呼び出してあげます。
先ほどのクラスにメソッドを追加します。
class Window_Fase < Window_Base
  def initialize
    super(61, 142, 432, 132)
  end

end
super で、Window_Base の initilize メソッドを呼び出しています。

3.顔グラを描画する
では、メインの顔グラを表示するメソッドを追加しましょう。
class Window_Fase < Window_Base
  def initialize
    super(61, 142, 432, 132)
    refresh # refresh メソッドを呼び出す
  end
  def refresh
    actor = $game_party.members
    for i in 0...actor.size
      x = 100 * i + 2
      draw_face(actor[i].face_name, actor[i].face_index, x, 2)
    end
  end

end
では、refresh メソッドを上から順に見ていきたいと思います。
actor = $game_party.members
$game_party.members という名前は長くて使いづらいので、actor という名前に置き換えています。
以後、このメソッドで actor とすれば、$game_party.members と同じ意味になります。
for i in 0...actor.size
  中略
end
actor.size は、パーティの現在の人数を表しています。
x = 100 * i + 2
draw_face(actor[i].face_name, actor[i].face_index, x, 2)
draw_face() は、Window_Base で定義されている顔グラを表示するメソッドです。
引数には、左から『ファイル名, インデックス番号, x座標, y座標』を指定します。

変数 i には、パーティの人数だけ0~3の数字が入っています。
ですので、パーティの先頭アクターの時には i = 0 となっています。

x = 100 * 0 + 2 を計算して、x座標は2となり、
1番目のアクターの顔グラは(2, 2)の位置に表示されます。

同様に、2番目のアクターは x = 100 * 1 + 2 で、x座標は102となり
顔グラは(102, 2)の位置に表示されます。

顔グラ1つのサイズが 96×96なので、顔グラと顔グラの間は 4px 空くことになります。
コメント




 

 ※ コメント内にURLを含めるには、バッククォート(`)をURLの直前に付け加えてください。


管理人のみ閲覧許可 [?]

トラックバック
トラックバックURL:
http://cacaosoft.blog42.fc2.com/tb.php/58-f8367c6e
≪ トップページへこのページの先頭へ  ≫
カレンダー
06 << 2017/07 >> 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -

カテゴリー
最近の記事
最近のコメント
03/16 お返事
01/21 お返事
11/30 z座標
11/20 z座標
08/03 お返事

タグクラウド

リンク