独学ツクールブログ

ツクールでのオリジナル作品の話を中心に創作関係の徒然な語り。

<< RGSS奮闘記6:セーブ枠を増やす5 | main | やけっぱち。 >>

[ - ] スポンサーサイト

一定期間更新がないため広告を表示しています

| 2018.05.23 Wednesday | - | - |

[ RGSS奮闘記 ] RGSS奮闘記7:セーブ枠を増やす6

〜前回のあらすじ〜
L⇔Rって今時知らないよね




今回はここまでのラスト。
実際にページが切り替わる動作部分のスクリプトである。

if (@page != last_page)
  @savefile_windows.each {|window|
    window.visible = false
  }
  n = @page * 4
  4.times {|i|
    @savefile_windows[n + i].visible = true
  }
  @savefile_windows[@file_index].selected = true
end
1行目、「!=」という記号は「等しくない」という意味だ。
Rubyのエクスクラメーションマークはそれに続くものの否定を意味する。この場合、等しいという意味の「==」を否定している。つまり、@pageとlast_pageが等しくないならばという意味だ。
前回までのスクリプトで、last_pageにはカーソル移動前の、@pageには移動後のページが入っている。ページが等しいなら当然切り替えは発生しないわけである。

2行目、eachは配列のそれぞれの要素に何かの処理を送るメソッドである。
その処理は「do〜end」か「{}」で囲む必要がある。これは「ブロック」と呼ばれる。Rubyにおけるなかなか重要な仕組みの一つなのでぜひ覚えておきたい。
さて、そのブロックの中身、「||」で挟まれたローカル変数windowは「ブロックパラメータ」と呼ぶ。今回のeachの場合、配列の各要素が一旦この変数に入ったうえで、その変数に対し何らかの処理を行うのである。

3行目、windowを不可視にする。前段で説明したブロックの機能と合わせ、これですべてのウィンドウを不可視にしているわけである。

5〜8行目はその3と同じ。1ページ分のウィンドウを表示する。

9行目で現在のインデックスがあるウィンドウを選択状態にして終了。


ということでこれで改造終了。

結果は以下の通り。

って分かりにくいか。

ちなみに、ここまで読んで来た人ならたぶんわかると思うが、これはあくまで一例であり、今回触れた場所やWindow_SaveFileクラスのさまざまな値を変更することでセーブの個数や1ページのウィンドウ数を変えることが可能である。


改造したScene_File全体は こちらに置いてある。
解説した部分以外にも多少整理してあるのでもし使うならこちらをどうぞ。


タグ:[Ruby] [RGSS] [素材] [Scene_File]

| 2010.12.09 Thursday 19:22 | comments(0) | trackbacks(0) |

[ - ] スポンサーサイト

| 2018.05.23 Wednesday 19:22 | - | - |

コメント

コメントする






この記事のトラックバックURL

トラックバック

このページの先頭へ▲

Twitter

WebClap

Blogram

ブログランキングならblogram

calendar

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  
<< October 2019 >>

categories

archives

Amazon

selected entries

recent comment

recent trackback

recent ranking

links

search this site.

sponsored links

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM