ユーザ定義命令というのは、DEF~ENDで囲って命令を定義しておくと、その命令を書くだけで、できるのです。 同じ命令をあちこちで何度も使いたいとか、特定の命令を分けたい時とかに良いかもですね。 似たことはGOSUBでも出来ますが慣れるとユーザ定義命令の方が使いやすいです。(誇張抜きにGOSUB要らずになります) 引数も付けられるので、特定の値を与えて結果を返す関数的な事をしたり、引数に応じて別の処理をということも可能なので慣れると超便利です。 スプライト内部変数というのは自分もどう使うのか悩むところですが、スプライトのプロパティ的なものとして使うといいかもですね。 でCALL SPRITE/SPDEFとかのコールバック命令と組み合わせて、コールバックルーチンに、コールされたときにその変数の値のいかんで己の挙動を変えるようなプログラムを書いて、ループ毎にCALLすると「自立」すると思います。