タイムリミット1 タイムリミットの作り方のパターン1。 タイムリミット3とは共通点もありますが、構造は全く別物です。 数値変数 [スタート]…カウント開始時間、または+一時停止時間 [リミット]…タイムオーバー時間、または+一時停止時間 [残り]…タイムオーバーまでの時間 [経過]…カウント開始からの経過時間 [停止]…一時停止開始時間、または一時停止時間 ユーザーレイヤー 〈表示〉…メッセージ表示 〈時間〉…カウントダウン表示 「スタートページ」「待つ」「ごー」「どーだ」「一時停止」「解除」「ミニ」「ミニ続」「ミニ表」「ミニ消」「クリア」「オーバー」 +調整方法 「スタートページ」
「スタートページ」でユーザーレイヤーを表示し、ダイナミックレイヤーを作成して準備します。 ダイナミックレイヤーのID指定はサンプルでは0にしています。 カウントダウンを始めた時間を[@経過時間]からとっておきます。 [@経過時間]は、そのゲームを開いてから現時点まで何秒経過したかが出る数値変数です。 [リミット]に[スタート]+制限時間(秒数)を入れます。 サンプルでは制限時間を120秒=2分にしてあります。 カウントダウンの準備が終わったので、「待つ」に移動します。 「待つ」
「待つ」では残り時間、経過時間を計算してメッセージを表示し、残り時間が0以下になったら「オーバー」に移動してゲームオーバー。 そうでなければしばらく待ち、「待つ」に再び移動します。 〔しばらく待つ〕は、制限時間による解除∞ユーザー操作による解除≠同時選択すると、○秒経過するか、ユーザー操作があるか、どちらかで〔しばらく待つ〕が解除されるように出来ます。(参照:コミメカ3研究中間報告書 しばらく待つ) サンプルでは、100ミリ秒経過するか、クリッカブル領域をクリックされるまで、待ちます。 その間に「ごー」または「どーだ」のダイナミックレイヤーをクリックすれば、「ごー」「どーだ」をサブルーチンコール、メッセージを表示して、「待つ」に戻り、残り時間・経過時間を計算して表示し直し、また待ちます。 何事もなく100ミリ秒経過すれば、「待つ」の先頭に移動し、時間表示を更新して、また待ちます。 これが延々と続きます。 [残り]←[リミット]−[@経過時間] は、 例えばリミットがゲームを開いてから150秒後で、現在ゲームを開いてから60秒経っていれば、150-60=90秒 残り時間がある、という計算になります。 [経過]←[@経過時間]−[スタート] は、 例えばゲームを開いてから30秒後にそのコーナーを始めて、現在ゲームを開いてから60秒経っていれば、60-30=30秒 コーナーを始めてから経っている、という計算になります。 この時、サンプルのように[メッセージの表示]で残り時間・経過時間を表示する場合は、表示エフェクトなし(一括表示)≠ノして、最後に<KEY>は入れないでください。 表示する、という動作の後すぐに次の〔しばらく待つ〕を実行させる為です。 [残り]≦0 であれば、残り時間が0秒または−1秒〜なので、「オーバー」に移動。 [残り]≦0でなければ、まだ時間があるので、待ちます。 「ごー」「どーだ」
短いメッセージを表示する例です。 テキストレイヤーで表示すると時間表示の切り替えの際に消えてしまうので、ユーザーレイヤー〈表示〉に表示しています。 表示してサブルーチンから復帰し、「待つ」に戻ります。 「一時停止」
一時停止します。 数値変数[停止]に、一時停止を始めた時間を入れておきます。 画面全体を覆うダイナミックレイヤーを作成し、そのダイナミックレイヤーをクリックする、または「Enter」「Shift」キーを押すと、「解除」に移動します。 「解除」
「一時停止」から「解除」に移動し、一時停止を解除します。 「一時停止」で作成した、画面全体を覆うダイナミックレイヤーを消去。 [停止]に一時停止時間を計算して入れます。 一時停止した分タイムリミットが伸びるので、[リミット]に足します。 逆算して[スタート]も遅くなることになるので、[スタート]にも一時停止時間を足します。 サブルーチンから復帰し、「待つ」に戻ります。 「ミニ」
「ごー」「どーだ」「クリア」「一時停止」が使用不可の状態で、一時停止はせずカウントダウンは続けていく例です。 「ミニ続」「ミニ表」「ミニ消」をサブルーチンコールするダイナミックレイヤーを作成し、サブルーチンから復帰して「待つ」に戻ります。 「ミニ続」へのダイナミックレイヤーは、画面全体を覆います。 画面全体を覆うことで、「ごー」「どーだ」などはクリック出来なくなります。 「ミニ続」
ミニを続けるので、何もせずサブルーチンから復帰して「待つ」に戻ります。 「ミニ表」
「ミニ」で作成したダイナミックレイヤーからサブルーチンコール。 役割は「ごー」「どーだ」とほぼ同じです。 「ミニ消」
ミニを消します。 「ミニ」で作成した、画面全体を覆うダイナミックレイヤーを消去し、サブルーチンから復帰して「待つ」に戻ります。 「クリア」
プレイヤーがカウントをクリアします。 「ごー」「どーだ」等のダイナミックレイヤーを消去して、終わりです。 「オーバー」
タイムリミットが来たので、タイムオーバー。 ミニ表示中にタイムオーバーになる場合もあるので、ダイナミックレイヤーはID:0もID:2も消去して、終了です。 調整方法 調整のポイントは、 ・制限時間 ・選択 ・メッセージの内容 ・切り替え時間 ・カウントダウン表示 ・一部削除 ・改造 です。 ・制限時間 サンプルでは、「スタートページ」で制限時間を120秒=2分にしてあります。 制限時間を変える時は、この120をお好みの秒数に変えてください。 ・選択 サンプルでは、「ごー」「どーだ」を選択出来ます。 選択肢の表示を変える、増やす時、「スタートページ」でサンプルと同様にダイナミックレイヤーを作成し、選択先のページを作成してください。 ダイナミックレイヤーは、画面表示だけ変えて引き続き待たせる+時間表示を更新するので、サブルーチンコール=A実行モードを保持する<`ェック無しにしてください。 ダイナミックレイヤーをイメージを表示≠ノすることも出来ます。 〔選択肢の表示〕を使うことは出来ません。 ダイナミックレイヤーでそれっぽく代用してください。 ・メッセージの内容 サンプルでは、「ごー」「どーだ」と表示しています。 内容を変える、種類を増やす時、ページ「ごー」「どーだ」と同様に〔メッセージの表示〕を1つ作ってください。 画面表示だけ変えて引き続き待たせる+時間表示を更新するので、〔メッセージの表示〕は表示エフェクトなし(一括表示)≠ナ、最後に<KEY>は入れないでください。 〔メッセージを表示〕を〔グラフィックの表示〕に変えたりも出来ます。 ・切り替え時間 サンプルでは100ミリ秒ごとに残り時間・経過時間の判断をさせていますが、「ごー」「どーだ」「クリア」をクリックした時、ほんのたまに反応しません。 これは判断の間隔をどんな数値に設定しても起こりえる現象です。 待機中にクリックするか、他のコマンドの動作中にクリックするかの、微妙なタイミングで。 間隔が空くほど起こる確率は減ります。(理論上です。起こる時は起こります) 逆に、表示切替に対する判断の間隔が大きいほど、例えば1秒ずつ表示する時、1秒ごとに判断をさせると、複数のコマンドの動作に時間がかかる為に、「少し時間の切り替わりが速い」「遅い」と思うことがあります。 以上二点を考慮して、実際に動かして見ながら、200ミリ秒、500ミリ秒など、お好みの切り替え時間に調整してください。 ・カウントダウン表示 サンプルでは1秒ごとにカウントダウンの表示を更新していますが、残り時間・経過時間を分で表示することも出来ます。 例えば残り時間を分で表示する場合は、更に数値変数[残り秒]を追加し、 [残り]←[リミット]−[@経過時間]の次に、 [残り秒]←[残り]mod 60 [残り]←[残り]÷ 60 IF[残り秒]≠ 0 [残り]←[残り]+ 1 ENDIF を足します。 130秒を60で割ると商(÷)は2、余り(mod)10です。 130秒では残り時間3分と表示したいので、[残り秒]≠ 0で[残り]= 2(商)に+1して[残り]= 3にします。 120秒の時は商2、余り0。[余り]=0なので[残り]= 2のままです。 経過時間を分で表示する場合も、同様です。 ・一部削除 変数、レイヤーの名前はサンプルと同じでなくても構いません。 別の用途に使用している変数、レイヤーを兼用することも可能です。 サンプルは[スタート][リミット][残り][経過][停止]と5つ変数を使っていますが、例えば経過時間を計算する必要が無ければ[スタート][経過]は使わなくても出来ます。 [スタート]←[@経過時間] と [経過]←[@経過時間]−[スタート]を削除して、 [リミット]←[スタート]+○ を [リミット]←[@経過時間]+○ に変えます。 一時停止をしない場合は、ページ「一時停止」「解除」、数値変数[停止]、「スタート」の「一時停止」へのダイナミックレイヤーは、削除してください。 他、経過時間表示だけにするなど、機能を一部削除する場合は、必要の無い変数は削るなどしてください ・改造 お好みで色々改造してみてください。 |