忍者ブログ

「の」べや

編集後記とかゲーム作ってたりとかいろいろ。 気まぐれ飽き性なんでもござれ。

   

$scene を見てみる

同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite

RPGツクールVX (XPも) のRGSSは $sceneっていうグローバル変数が軸になってプログラムが実行されている。正確にはスクリプトの「Main」の中に書いてある一文、

  $scene.main while $scene != nil

というのがプログラムを実行させていると考えていい。
この一行を簡単に言うと「$sceneというグローバル変数の中がnilじゃない限りその変数に入っているクラスのメソッド " main " をずっと行う」みたいな感じ。
$sceneの中に入るのはシーンクラスのみ。他のクラスをいれてしまうとエラーが起きる。正確には「main」というメソッドを持ったクラスならとりあえずOKっぽい。

じゃあ、そのmainってのは何をやっているのかというと、そこでScene_Baseクラス

じゃん。

  #-----------------------------------------------------------------
  # ● メイン処理
  #-----------------------------------------------------------------

  def main
    start                         # 開始処理
    perform_transition            # トランジション実行
    post_start                    # 開始後処理
    Input.update                  # 入力情報を更新
    loop do
      Graphics.update             # ゲーム画面を更新
      Input.update                # 入力情報を更新
      update                      # フレーム更新
      break if $scene != self     # 画面が切り替わったらループを中断
    end
    Graphics.update
    pre_terminate                 # 終了前処理
    Graphics.freeze               # トランジション準備
    terminate                     # 終了処理
  end

Scene_Baseはシーン関係のスーパークラスとして使われるので再定義や上書きをされていない限りはこの処理が行われると。
で、処理の真ん中あたりにあるloop の中身をずっと繰り返している。$sceneの中身が変わったらbreakとなっているのでシーンが変わらない限りはupdateメソッドが行われているわけだ……。

トランジションは画面切替の効果なので手をつけなくてもいいと思う。
画面がなめらかに切り替わっているのはこのトランジション処理のおかげ。

だからまあ、新しくシーンを作りたい場合はこれらのメソッドに行いたい処理を入れればいいという事。

start             画面切替の前に行っておきたい処理(画像の準備とか)
post_start  画面切替の後に   〃

update       シーンが行われている間にフレーム毎に行いたい処理

pre_terminate  終了の画面切替の前に行いたい処理
terminate          画面切替中に行いたい処理

おのおののメソッド名がInitialize や dispose とは違い start や terminate という名前にしているのは
恐らく混同しないためかと思う。

ちなみに Scene_XXXX.new の時に呼び出される関数はInitializeなのでシーン移動の際に引数を入れたい場合はInitialize関数を入れてそこで引数を使う処理をするといい。

スクリプト例とか作るのは手間なので割愛。リクエストあればやりますが、カウンターまだ1しか回ってないし(笑)。

こうやって紐解いていくと意外とシンプルなのがわかる。
まあ、グラフィック関連についてはまだまだサッパリなんだけどね。
同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite DMM GAMES 遊び放題
PR

COMMENT

TRACKBACK

Trackback URL:

ブログ内検索

お知らせ

動画に使用している「妹さん」の立ち絵はこちらの著作権フリー素材集を使って作っています。


著作権フリー立ちキャラクター素材集vol.8全年齢版


2021/08/05に CeVIO AI さとうささらが発売されました。なんとDLSiteでも買えます。

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

カテゴリ

プロフィール

HN:
のぎー
性別:
男性

カウンター

Copyright ©  -- 「の」べや --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]