モードを切り替える・管理する
コンテンツを作っているといくつかのモードを切り替えたい場合というのがあります。
例えばゲームを作る場合、待機画面、プレイ画面、結果画面の3つのモードを持ち、それぞれを切り替えていきたくなるでしょう。
こう言った場合、切り替えに『ユーザの操作』もしくは『一定時間経ったら』という、時間制限をかけてのモード切り替えを行う場合が多いため、TouchDesignerではTimer CHOPを使うことが多いようです。実際にマウスクリックの回数を競うゲームを作ってみましょう。サンプルファイルはこちら。
設計図を書く
モードの数、そして切り替え条件をプログラミングの前に一度書き出してみましょう。今回であれば待機、プレイ、結果の3つのモードがあれば事足りそうです。また、その際の次のモードに移り変わる条件も決めましょう。
待機からプレイへはマウスクリック、プレイから結果へはタイマー、結果から待機へもタイマー、ということにしましょう。
画面
3つのモードの画面を作ります。基本はText TOPで作り、タイマー表示をRectangle TOPで作りました。モードの切り替えはswitchで行うようにしました。つまり、この後Timer CHOPを使ってこのSwtich TOPのindexを切り替えていくことになります。
マウス操作
マウスはMouse In CHOPで左クリックだけを取り出します。
Count CHOPでカウントアップさせていきますが、スコア表示するときはカウントアップを止めたいので間にHold CHOPを挟んでいます。
また、プレイ開始の際にTimer CHOPをキックするため、またCount CHOPのカウントをリセットするためにChopExecuteDATを使っています。
タイマー
TimerCHOPを使ってモードを管理します。なのでTimerCHOPはモードの数だけ設置します。つまり今回は3つ。Startも繋いでいますが、リセットはゲーム終了時に全て同時にしてしまって良いのでInitializeも繋いでいます。
また、それぞれのTimer CHOPのCallback DATにそれぞれの画面の切り替えなどの処理を書いていきます。
この記事が気に入ったらサポートをしてみませんか?