忍者ブログ

「の」べや

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

   

[PR]

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

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

$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

fill_rect vs blt

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

fill_rectとbltはどっちが速いのか?

昨日久しぶりにノートパソコンでツクール動かした。そしたらなんかめっさ重い。

比較的性能のいいデスクトップだとさくさく進むけど、ノートだとこんなに重くなるとは……。スクリプトを無茶苦茶に書いたのが原因なのはわかるけど……。
ということで少し「速さ」というのにもこだわってみる事にしました。

基本は描画関係。

とりあえず処理を10000回回して速度をはかります。ばらつきがあるので50000回回して5で割ってみました。スクリプトはかなり適当。一応使ったスクリプトを続きのとこに載せておきます。
Timeで時間引っ張ってその差を求めただけです。単位は秒です。

スペルミスあるけどキニシナイ







スペルがアレだがそのあたりは大目に見るのが大人ってものだ。

結果。(20 x 20)

処理 1回目 2回目 3回目
fill_rect 0.0272 0.0202 0.0278
blt 0.06 0.0618 0.0474
gradient_fill_rect 0.0732 0.08 0.0964
draw_text 0.9118 0.9118 0.9252


サイズを変えてもう一回(128 x 128)
draw_textはサイズあまり関係ないので計測せず

処理 1回目 2回目 3回目
fill_rect 0.0792 0.1026 0.0908
blt 0.8102 0.8257 0.8078
gradient_fill_rect 1.8556 1.8674 1.87


つまり、
fill_rect  >  blt  >  gradient_fill_rect
となりました。

何かの参考にでもナレバ

ちなみに使った処理は「続き」から ↓
結構下なの気をつけて orz



 
同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite DMM GAMES 遊び放題

RGSS2 : アイテムの部分

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

どちらかと言うと備忘録……
Game_Partyのとこのitem_numberメソッドのところがこうなっている。
#--------------------------------------------------------------------------
# ● アイテムの所持数取得
# item : アイテム
#--------------------------------------------------------------------------
def item_number(item)
case item
when RPG::Item
number = @items[item.id]
when RPG::Weapon
number = @weapons[item.id]
when RPG::Armor
number = @armors[item.id]
end
return number == nil ? 0 : number
end

で、Initializeでこう定義されている
@items = {}
@weapons = {}
@armors = {}
通常の配列ではなく、ハッシュなのだ。
コレガワカラナイ

と思ったら簡単だった。
ただ単にアイテムのIDをキーにしてその配列に「所有数」が入っているだけだったとさ。
で、そのIDから個数を返していた、と。なるほどなるほど。
同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite DMM GAMES 遊び放題

すごいなぁ……の1

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

ふと見つけた。海外のらしい。 ツクールXPのサイドビュー VXのやつは今使っているんですが、こっちのエフェクトとか敵がアニメーションしたりとかがすごい。
同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite DMM GAMES 遊び放題

ダウンドーロ

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

パソコンを再インストールしたので
メッセンジャーを入れ直そうとしたのだ。

そしたら

001.gif










ダウンドーロってなんじゃろ。

と、低レベルなアゲアシトリが最初の記事なんて orz
 
同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite DMM GAMES 遊び放題

ブログ内検索

お知らせ

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


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


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

カレンダー

10 2024/11 12
S M T W T F S
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

カテゴリ

プロフィール

HN:
のぎー
性別:
男性

カウンター

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