第7回 いろいろな画面を表示しよう!

 2008-05-25
SS200805261318.jpg 今回の講座では、マップ画面からどのように
他の画面へ移っているのかを説明したいと思います。

また、オリジナルの画面も作って表示してみます。


では、マップ上からメニューやショップが
どうやって呼び出されているかについて説明します。

その方法は、たったの1行だけです。
$scene = シーンクラス.new
この形で呼び出すことができます。

イベントコマンドのスクリプトに
$scene = Scene_Debug.new
と記述して、そのイベントに話しかけてスクリプトを実行してみてください。

どうでした?
デバック画面が表示されたと思います。

あ、シーンクラスと言っても Scene_○○ という名前にすればいいと言うことではないですよ。
名前は関係ありません。

先程のスクリプトを下記に書き換えればゲームオーバーになりますよ。
$scene = Scene_Gameover.new

画面の切り替え方はわかってもらえましたか?
次は自分でシーンクラスを作ってみましょう。

ところで、シーンクラスとウィンドウクラスはどう違うのでしょうか?
シーンはいろいろな機能の処理を定義しているクラスです。
ここからウィンドウクラスを呼び出して、表示しています。
ウィンドウクラスは、単にウィンドウを表示するだけのクラスですね。

シーンのクラスを見てみると、最初のほうに
@○○ = Window_○○.new が並んでいるでしょう?
これでウィンドウを表示しています。


ではでは、パーティの顔グラを表示する機能を追加してみましょう。

◆ Window_Fase
class Window_Fase < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(61, 142, 432, 132)    # ウィンドウのサイズ
    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


◆ Scene_Fase
class Scene_Fase < Scene_Base
  #--------------------------------------------------------------------------
  # ● 開始処理
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background            # 背景を描画
    @fase_window = Window_Fase.new    # ウィンドウ作成
  end
  #--------------------------------------------------------------------------
  # ● 終了処理
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background   # 背景を消去
    @fase_window.dispose      # ウィンドウを消去
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    # Xキーが押されたらマップに戻る
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    end
  end
end


スクリプトを載せたら、長くなってしまったので、
今回は全体のスクリプトを載せるだけで終わりたいと思います。

ウィンドウも1つしか使っていないので、
1つのクラスにまとめたほうがいいですけど、
シーンクラスについての回だったので、
ウィンドウクラスとシーンクラスの2つに分けています。

説明は次回にしたいと思います。
では、この辺でノシ

コメント




 

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


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

トラックバック
トラックバックURL:
http://cacaosoft.blog42.fc2.com/tb.php/56-59bf0f6f
≪ トップページへこのページの先頭へ  ≫
カレンダー
09 << 2017/10 >> 11
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 - - - -

カテゴリー
最近の記事
最近のコメント
タグクラウド

リンク