【FlowScript講座】第10回 Boolean


[管理者]
KHCmaster
今回はBooleanに関するデータの扱い方について学びます。

Booleanは真偽値を扱うデータでFalse(偽)かTrue(真)の2通りしかありません。
使い方も限られていて、フラグ(○○したかどうか)ということに使います。

簡単なサンプルをご覧ください。(Flag.fsml)


まず、Boolean.ValueScope.SetValueを使いFlagという変数にFalseを入れておきます。
次にLogic.Anyを使います。
これは接続されている緑色のフローうちいずれかが使われたらOutイベントが起こるというものです。
In0がまず使われるので、Outイベントが使用されます。
次にLogic.Ifですが、Conditionには(NOT Flag)が接続されているので、
Flag==FalseのときにOnTrue、Flag==TrueのときにOnFalseが使用されます。
今はFlag==FalseなのでOnTrueイベントが使用されます。
次に、Scope.SetValueでFlagという変数にTrueを入れます。(※)
そして、「Flag was False」という文字列を表示します。
そして、もう一度Logic.Anyに戻ってきてOutが使用されます。
再度Logic.Ifですが、現在Flag==TrueなのでOnFalseが使用されます。
「Flag was True」が表示され、スクリプトは終了します。

-----------------------------------------------------------------------------------------------------------
余談ですが、Flagという変数にTrueを入れる部分(※)を実行しないとこのスクリプトは無限ループに陥ります。
1分ぐらいでとまるので落ち着いてください。
Logic.AnyはRepeat.*を使わずに反復処理を行う唯一の方法になります。
-----------------------------------------------------------------------------------------------------------

このような感じでフラグ動作を行うことができます。
とはいうものの、Booleanは別になくてもいいデータ型です。
Int32型で0ならFalse、1ならTrueと決めてしまえばScope.GetValueのところが
Scope.GetValueInt32.Equalに増えるだけです。
ですが、2値しかとりえないので意図が明確になり、久しぶりに自分のスクリプトを見たときに
首を傾げる機会は少なくなるでしょう。


今回のまとめですが

Boolean.ValueでBooleanのデータを作成
Logic.Anyで反復処理も行える

となっています。
今回の講座に関する質問はこのスレッドで受け付けています。
次回はFlowScriptの細かい動作について行う予定です。
作成日時:2013-08-24 13:07:06 更新日時:2013-08-24 13:07:37
FlowScript講座をフォーラムを使って開講中です。