スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)

第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
≪ トップページへこのページの先頭へ  ≫
カレンダー
03 << 2017/04 >> 05
- - - - - - 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 - - - - - -

カテゴリー
最近の記事
02/28 お返事
02/14 お返事
01/21 お返事
01/12 更新情報
11/28 お返事

最近のコメント
03/16 お返事
01/21 お返事
11/30 z座標
11/20 z座標
08/03 お返事

タグクラウド

リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。