横入り。
IF FLG==1 THEN は IF FLG THENと書けますよ。
IFは0か0以外かで判断されるので、省略するのはよくある感じです。とくに変数が真偽(TRUE(1), FALSE(0))のみを保持している場合や関数が真偽を返す場合などは、省略しても混乱もなく短くすっきり読みやすくなるメリットもあるんです。
でんぺんさんへ
SPANIMを待つときはSPCHK命令を使った方が良いということですが、SPCHKで終わるまでウエイトするという方法と、ボタンが押された時などにSPCHKでアニメが終わってるかをチェックして、終わってなければ処理をスキップするという方法が分からないので、実例を教えていただけませんか?
ST=SPCHK(変数)
IF ST AND #CHKI THEN WAIT
…という感じにすれば、アニメが終わるまで待ち続けるようになりますか?
なお、コマンド入力で処理をスキップするほうは、どういう形式にすれば良いか?思い付きません…orz。
例えばアニメーションが終わるまでウエイトなら
REPEAT:VSYNC:UNTIL SPCHK(管理番号) AND #CHKI
みたいな感じですね。ただループとかしていると終わることが無いので、そこは注意って感じです。
コマンドスキップの場合、例えば
IF BUTTON(2)==#A && (SPCHK(0) AND #CHKI)==0 THEN
'Aボタンが押されて管理番号0のアニメーション中でないなら実行
ENDIF
みたいな感じです。あくまで一例ですけどね…。
よって「アニメーションを1回分終了した時」をチェックするには以下の方法で可能となる。
@ANIMECHK
WAIT
IF (SPCHK(0) AND #CHKI)==0 THEN @ANIMECHK
これは下記のように記述が可能。
REPEAT
WAIT
UNTIL SPCHK(0) AND #CHKI
返事を書こうと思ったら、おちゃめさんが詳しく書いてくれているので僕の方は割愛します〜。
ちょっと追加で、もしWAITと比べて、
REPEAT:VSYNC:UNTIL SPCHK(管理番号) AND #CHKI
が長くて不便、という感じだった場合は、
DEF WTCHK N
REPEAT:VSYNC:UNTIL SPCHK(N) AND #CHKI
END
のようなユーザー定義命令を作れば必要な時に、
WTCHK 0
と書けば良いだけになるので便利ですよ。
こういう事も含めて色々覚えていくと自分の力になるとも思うので、怖がらずに色々と試しながら自分のやり方をみつけていければいいなと思います。