忍者ブログ

へぷたなすくろーる

RPGツクールのブログです。イベント講座とRGSS3スクリプト配布をやってます♪

2017/10    09« 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  »11
×

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

前回の記事で説明したマージの発展系です。
基本となる競合の仕組みやマージについては向こうの記事を参照して下さい。

さて、マージとは同じメソッドに
「Aの変更を加える」スクリプトと「Bの変更を加える」スクリプトがある場合
「AとBの変更を加える」スクリプトに改変することで競合を防ぐ方法でした。
しかし、当然それは(変更が両立可能な場合)という括弧付きです。
お互いに何かの処理を加えるというスクリプトなら問題はおきにくいですが
何かの処理を削る変更や、既存の数値を弄る変更は両立し難い場合があります。

そこで例えば、ある場面ではスクリプトAを、ある場面ではスクリプトBを適用したい。
或いは、ある場面ではスクリプトAを、ある場面ではデフォルトの仕様にしたい。
こういった形でスクリプトを導入したいというケースはあると思います。
今回はifとelse、つまり条件分岐を使ってスイッチで切り替える方式のマージを紹介します。

拍手[5回]



処理の確認と「切り替え型マージ」
スクリプトの中で共通する(クラスも同じ)メソッドを探すのは前回と同じです。
#デフォルトスクリプト
class abc
 def update
  check
 end
end
#スクリプトA
class abc
 def update
  check
  change_chip
 end
end
#スクリプトB
class abc
 def update
  pre_check
  check
 end
end
これを参考にマージスクリプトを追加するのも同じですが
今回はより単純に、条件分岐を作ってその先に丸ごと移植します。
#スクリプトC
class abc
 def update
  if $game_switches[1] == true
   check
   change_chip
  else
   pre_check
   check
  end
 end
end
段落を別けているので多少は判りやすいと思いますが
if $game_switches[1] == trueがスイッチ1番がonの場合という条件分岐で
elseがそれ以外の場合、endが分岐終了です。
変数を使う場合は$game_variables[n]とelsifを使いますが、あとはヘルプなどで調べて下さい。
例ではスクリプトAとスクリプトBの切り替えになっていますが
分岐先にデフォルトの処理を入れることも勿論可能です。

注意点
まず、スイッチは最初オフの状態で生成されるため
ゲーム開始後まではelseの方が優先されることを理解しましょう。

また、initializeやsetupという様なメソッドは
最初にデータを用意しておく、という働きを持っています。
(絶対ではありませんが、それらは$や@に=で代入する処理が入ってます)
これを切り替え型にしてしまうと後々データが無くてNoMethodErrorになりますので
切り替え型にする場合でも、この手のメソッドは前回の結合型マージを使うようにします。

faux women cartier bangle yellow gold

I was raised in Seattle and lived there 32years. When I moved to Long Island, NY the humidity was so thick it looked like fog on a hot day. Never experienced humidity like that in the PNW. Now living in the Catskill Mountains for the past 22 years (really hills by PNW standards, my house is at the highest driveable point in our county at a whopping elevation of 2,400 feet above sea level) and the winters are sooooooo looong, lasting six months. There are very few evergreen trees, so all you see is bare tree branches from October to May when there are no leaves on the trees. Nothing of interest to look at outside. When it rains here it rains hard! When I first moved here, people asked where my umbrella was and I told him I was from Seattle we never use umbrellas. I never owned an umbrella until I moved to New York. During many trips back to Seattle to visit family over the years, rarely have I seen rain and typically it is only on my way to the airport when leaving! WA is the most beautiful state I have seen and someday I hope to move back!
faux women cartier bangle yellow gold http://www.thislovebangle.cn/
by faux women cartier bangle yellow gold URL 2017/06/18(Sun)14:50:11 編集
お名前
タイトル
メール(非公開)
URL
文字色
絵文字 Vodafone絵文字 i-mode絵文字 Ezweb絵文字
コメント
パスワード   コメント編集に必要です
管理人のみ閲覧

カウンター

ブログ内検索

アーカイブ

最新コメント

[07/02 Akoganubeb]
[07/01 micheleSr]
[06/30 hamletSr]
[06/28 ゴーゴン]
[06/28 Akioronis]

プロフィール

バナー

HN:奈々(なな)
RPGツクールVXAceを中心に製作を行っています。 スクリプト、イラスト、ドット絵など広くちょこちょこ手を出していますので、 できる範囲で他のツクーラーさんのお手伝いができたらなと思っています。
<< Back  | HOME Next >>
Copyright ©  -- へぷたなすくろーる --  All Rights Reserved
Design by CriCri / Material by もずねこ / powered by NINJA TOOLS / 忍者ブログ / [PR]
PR