自ウィンドウの内部の大きさを、〈水平サイズ〉、〈垂直サイズ〉で指定した大きさに変更します。ウィンドウの左上の位置は固定して、右下の位置を変更します。
WSIZE文の対象となる自ウィンドウはアクティブでなくてはいけません。
特殊機能として、以下の指定で特殊なウィンドウを生成することができます。この指定を実行した時点ではウィンドウは変化しませんが、ウィンドウの次回の起動時に反映されます。
οWSIZE 0 0 タイトルなしのウィンドウ
οWSIZE 0 1 タイトルなしで横の幅が広いウィンドウ
◆現在のウィンドウの内部の大きさは、システム変数$WDW、$WDHにより取り出せます。
マイクロスクリプトでは、以下の座標系を使用します。
自ウィンドウ内の左上の位置を、指定した絶対位置に移動します。
†移動対象は、ウィンドウ枠ではなく、ウィンドウ内部の左上の点です。
WMOVE文の対象となる自ウィンドウはアクティブでなくてはいけません。
◆現在のウィンドウ内の左上の絶対位置は、システム変数$WDX、$WDYにより取り出せます。
現在の自ウィンドウの位置、大きさを保存して、次回のスクリプトの起動時に適用します。
EPILOGUE手続きなどに記述しておくことにより、移動したウィンドウの位置を、次回の起動時に反映することができます。
◆保存したウィンドウの位置、大きさは、対象の実身を基本図形編集で開いて、ウィンドウの位置、大きさを変更することにより無効になります。
FULLWIND文を実行した時点ではウィンドウは変化しませんが、ウィンドウの次回の起動時に、スクリーン全体に拡げて開くようにします。このウィンドウの開き方を、全スクリーンモードと呼びます。
◆全スクリーンモードは、ほかのウィンドウへの切り替えができない特殊なモードです。そのため、ほかの実身を起動して、別のウィンドウを開くことができまません。
◆全スクリーンモードは、対象の実身を基本図形編集で開いて、ウィンドウの位置、大きさを変更することにより無効になります。
UPDATE文は、〈式〉の値が0の時、ウィンドウ内の画面の表示の更新を停止します。〈式〉の値が0でない時、画面の表示の更新を再開します。
ウィンドウ内のすべてのセグメントを非表示状態にしてから、〈セグメント〉を後ろ(奥)から順番に表示状態にし、新しいシーンとします。
〈セグメント〉全体を囲む最小の領域(=シーンの領域)の左上隅が、ウィンドウの左上隅に一致するように表示します。〈セグメント〉を省略した場合は基本図形編集で設定されている背景色で塗りつぶされます。
〈効果名〉は表示方法を指定します。〈ステップ式〉は表示を完了するまでのステップ数を表し、大きい程ゆっくり時間をかけて表示されます。
〈効果名〉 | 表示効果 |
---|---|
省略時 | 一度に表示 |
WIPE_D | 上→下に広がって表示 |
WIPE_U | 下→上に広がって表示 |
WIPE_R | 左→右に広がって表示 |
WIPE_L | 右→左に広がって表示 |
SCRL_D | 上→下に広がって表示 |
SCRL_U | 下→上に広がって表示 |
SCRL_R | 左→右に広がって表示 |
SCRL_L | 右→左に広がって表示 |
WIPE_V | 中心→上下に広がって表示 |
WIPE_H | 中心→左右に広がって表示 |
WIPE_C | 中心→上下左右に広がって表示 |
STRP_H | 領域を〈ステップ式〉の数だけ水平(横)に分割し、その分割した範囲ごとに上→下に広がって表示 |
STRP_V | 領域を〈ステップ式〉の数だけ垂直(縦)に分割し、その分割した範囲ごとに左→右に広がって表示 |
MOSAIC | 分割してランダムに表示 |
〈セグメント〉を後ろ(奥)から順番に画面に表示します。〈セグメント〉を“表示状態”にする操作です。すでに〈セグメント〉が表示状態にあるときは、何もしません。
表示すべき座標位置にほかの表示物がある場合は、その上(手前)に重なって表示されます。
〈セグメント〉は、最近に実行したSCENE文の対象になったセグメントとの位置関係を保った位置に表示されます。SCENE文を実行していない場合は、図形実身の左上隅との位置関係を保った位置に表示されます。
〈効果名〉、〈ステップ式〉の指定はSCENE文と同じです。
〈セグメント〉を画面から消します。〈セグメント〉を“非表示状態”にする操作です。すでに〈セグメント〉が非表示状態にあるときは、何もしません。
〈効果名〉、〈ステップ式〉の指定はSCENE文と同じです。
セグメントの表示←→非表示をスムーズに行う
複数のセグメントを交互に表示して動きを表現する場合には、文の間をセミコロン(;)で区切って連続実行すると、スムーズに表示できます。
プログラム例
#花と鳥を1秒ごとに交互に表示する
VERSION 3
PROLOGUE
SCENE 鳥
EXECUTE 表示
END
ACTION 表示
REPEAT
SLEEP 1000
DISAPPEAR 鳥; APPEAR 花 #連続実行
SLEEP 1000
DISAPPEAR 花; APPEAR 鳥 #連続実行
ENDREPEAT
END
連続実行を行わないと、「鳥」と「花」の表示を入れ替えるときに、一瞬何も表示されない状態が存在するようになり、ちらついて見えます。
SCENE文とAPPEAR/DISAPPER文の相違点
1) SCENE文は、シーンの領域の左上隅がウィンドウの左上隅と一致するように、図形実身の中の表示範囲を決めます。APPEAR文は、このような表示範囲の移動はしません。
2) SCENE文での表示効果はウィンドウ全体に対して有効ですが、APPEAR文、DISAPPER文では表示を更新する領域(対象のセグメントを囲む長方形)のみ有効となります。
3) SCENE文は、まず最初にウィンドウ内のすべてのセグメントを非表示状態にします。APPEAR文は、これまで表示されているセグメントの上(手前)に重ねて表示します。
基準セグメントからの相対位置指定
〈基準セグメント〉の左上隅を(0,0)としたときの(〈X座標〉,〈Y座標〉)の位置に、〈セグメント〉の左上隅の位置を合わせるように、〈セグメント〉を移動します。
〈セグメント〉が表示状態になっているときは、その位置にセグメントが移ったことが画面でわかるよう表示が更新されます。〈セグメント〉が非表示状態になっているときは、何も表示は変わりません。APPEAR文によって表示状態にしたときに、その位置に表示されることになります。
プログラム例
#1秒経過後に、花セグメントの左上隅から右10ドット、下30ドットの位置に鳥セグメントを移動する。
VERSION 3
PROLOGUE
SCENE 鳥,花
SLEEP 1000
MOVE 鳥:10,30,花
END
基準セグメントを省略した場合
〈基準セグメント〉を省略した場合は(〈X座標〉,〈Y座標〉)分だけ、セグメントを相対移動します。
プログラム例
#1秒経過後に、鳥セグメントを右10ドット、下30ドットの位置に移動する。
VERSION 3
PROLOGUE
SCENE 鳥
SLEEP 1000
MOVE 鳥:10,30
END
基準セグメントに@を指定した場合
〈基準セグメント〉を“@”とした場合は、ウィンドウの作業エリアの左上隅の位置を(0,0)とした位置へ移動します。
座標値を省略した場合
座標値を省略したときは、指定したセグメントが最初にあった位置(基本図形編集で保存されているセグメントの位置)に戻します。
“:DUP”を指定した場合
最後に“:DUP”を付けた場合は、以前の位置のセグメントを残したまま複製して移動します。セグメントの軌跡を表示に残したい場合に使用します。ただし、仮身セグメントと文字セグメントに対しては無視され、通常の移動となります。最大16380個まで複製できます。
“:DUP”により複製されたセグメント群は全体が1つとして扱われます。たとえば、DISAPPEAR文では全部が消え、APPEAR文により全部が表示されます。ただし、操作対象としてのセグメントは、最後に移動した位置のセグメントだけが対象となります。
座標値を省略したMOVE文により、指定したセグメントが最初にあった位置に戻り、複製はすべて削除され、元の1つのセグメントに戻ります。
ブザーを鳴らします。次の値を指定します。
周波数:10Hz~
時間:1ミリ秒~
〈周波数式〉、〈時間式〉を省略すると、ユーザ環境設定で設定されている、周波数・時間が使われます。〈周波数式〉が0の時は、鳴っているブザーを止めます。実際に有効な周波数・時間はシステムに依存します。
BEEP文は、ブザーが鳴り終わるまで待ちません。すぐに次の文の実行に入ります。したがって、連続してブザーを鳴らす場合はSLEEP文により適当な時間だけ待つ必要があります。