まず、SPSETは、プログラムの途中で何度もする事でもないので、プログラムの冒頭にでも。 そうする事で@LOOPの前の2行は必要無くなります。 メインループの中ですが、飛び先(サブルーチン)の役割を考えると、@UGOは、毎回実行、@APPは、りんごがアニメしてない時(=画面に無い時)だけ、ランダムに位置決めてアニメ開始、なので必要な時だけIF文で呼び出してます。 これを、把握できれば、うまくいかなかった理由も、見えてくると思います。 (えーと、次は、複数のりんごのうち1つでしか判断してない件についてかな(笑))