WAIT

プチコン3号 プチコンBIG 

プログラムを指定フレーム数停止

WAIT [frame]

パラメーター

frame停止させるフレーム数。1フレームは1/60秒。省略時は1(1/60秒)

解説

WAITコマンド実行から、指定したフレーム数(画面を1回再描写するのが1フレーム)の間、プログラムを停止させます。
WAIT と VSYNC の違い
WAITは、WAITコマンド実行のあとに指定フレーム分停止します。
例えば「『ゲームオーバー』と表示させてBGMを流しながら、6秒間はボタンを受け付けない」という場合などに使用します。(サンプルコード参照)
1フレームは1/60秒、60フレームで1秒間停止します。

VSYNCは、前回のVSYNCコマンド実行時から指定時間が経過するまで停止します。
主に「画面の再描画待ち」に使用します。

例えば十時キーでキャラを移動させるプログラムの場合、内部的に座標が1ずつ動いていたとしても、
画面が描画されるまでに計算処理だけを高速に繰り返せば、画面上のキャラはいきなりワープしたようになってしまいます。

そのようにならないよう、最低でも1フレーム(画面再描写1回分)はプログラムを停止して待つ必要があります。
しかしここで「WAIT」を使うと、ループ処理時間1回分+WAITのフレーム分が停止する事になり、待ち時間が不安定になります。
「VSYNC」を使えば前回のVSYNCからの経過時間停止するので、毎回同じタイミングでプログラムが動きます。
※ループ処理1回に1フレーム以上の時間がかかると遅くなりますが、3DS+SmileBASICの性能上、通常はめったに起こりません。

サンプルコード

「ゲームオーバー」と表示し、音楽を流し、6秒間画面を止める
PRINT "ゲームオーバー"
BGMPLAY 6  '音楽を鳴らす
WAIT 360  '360フレーム(6秒)、プログラム停止(BGMは流れ続ける)
BGMSTOP   '6秒後にプログラム継続(BGMを止める)

参照

READ DATAに書かれた内容で変数に値を一括代入する
DATA READで読み取るためのデータを記述
RESTORE READで読込むDATAの位置を指定
OPTION プログラムの動作モードを設定
WAIT プログラムを指定フレーム数停止
VSYNC プログラムを指定フレーム間隔まで停止
' プログラムの中にコメントを書く
REM プログラムの中にコメントを書く
KEY ファンクションキーの設定を上書/読込
DTREAD 日付/曜日を数値で取得
TMREAD 時刻を数値で取得
CHKLABEL ラベル名が存在するか調べる
CHKCALL ユーザー定義命令・関数に使われている名前か調べる
CHKVAR 変数に使われている名前か調べる
DIALOG 画面にダイアログを表示する
CLIPBOARD クリップボードへの読み書き
DLCOPEN プチコン3号 カタログIPの利用開始を宣言

Facebookコメント