これを踏まえてでんぺんさんのプログラムを見るとDの値はループの最初の部分でD=0となっています。そして、十字ボタン入力をすることでキャラの向きに対応する定義番号がDに入ります。 SPANIMを実行するのはD!=NDかつD!=0の場合となっています。 D!=NDとなるのはキャラの方向が変わる瞬間もしくは十字ボタンを押した瞬間もしくは離した瞬間です。 D!=0となるのは十字ボタンを押している時なので十字ボタンを押した瞬間もしくはキャラの向きが変わる瞬間にSPANIMを実行します。 そして、停止するのはD!=NDかつD==0の時なので十字ボタンを離した瞬間となります。 というわけで、ちゃんとすべての場合を網羅していてなおかつ合理的なプログラムなのでサンプルとしては良い感じですね。