静止しているのは十字ボタンを押してない時なのでB==0となります。これは!Bと記述が可能です。
IF !B THEN SPCHR 0,C でその方向のアニメーションを停止が可能になります。
向きが変わるのはC!=PCでこれはC-PCと記述が可能です。(後者の記述はC-PC!=0の「!=0」を省略したもの)
あとはボタンを押した瞬間を判定すれば良いです。
これはBUTTON(2)を使っても良いのですが、1フレーム前のBの情報が分かっているため「現在ボタンを押していて前のフレームには押してない」ならば「押した瞬間」と分かります。
したがって、IF C-PC || (!PB && B) THEN SPANIM(以下略)とすれば良いのです。
ひろきちさんへ
これを理解する前に知っておくべきことが2つあります。
1つは(プチコンのみではなくほとんどの処理系において)条件判断はtrue(0以外の値)かfalse(0の値)だけで判断がされるということです。(条件式が成立の時はtrue、不成立の時はfalseとなる)
!Bの「!」は論理否定(論理反転)と呼ばれる記号でありtrueとfalseを入れ替えるものです。分かりやすく言えば「0を1」に「1を0」に(正確には「0以外の数を0」に)するものです。
IF B==0 THEN ~というのはBの値が0の時にtrueとなるためIF !B THEN ~としても同じになるというわけです。
つまり、IF B==0 THEN ~がIF !B THEN ~と記述可能なのは裏技でも何でもなく上記の2つのことさえ理解できれば自然に分かるものなのです。
ひろきちさんへ
極端な話をすればこんなIF文も書くことが可能です。
IF 1 THEN ~(必ずTHEN以下を実行する)
IF 0 THEN ~(必ずTHEN以下を実行しない)
だから、ボタン入力判定でIF B AND #A THEN ~というのもB AND #Aの値が「0」か「0以外か」で実行するかどうかが決まるわけです。
IF B AND #A THEN~を分かりやすく書けば IF (B AND #A)==#A THEN ~となります。
動作的にはIF (B AND #A)!=0 THEN ~と同じですが、このIFの意味合いとしては前者の方が分かりやすいと思います。
この「==#A」とか「!=0」とかは比較演算と言いますが、これを常に省略できるというわけではなく省略できない場合もあるということ知っておいた方が良いかもしれません。