X方向の動きを自然にするためにはXPとDXという2つの速度を一本化してみましょう。 2つに分けているのは壁に当たった後と前とで移動量の正負が反転するため停止処理がうまくいかなかったためだと推測しますがIF XP<1 THEN X=0というのはIF ABS(XP)<1 THEN XP=0とすればどちらの向きでも対応が可能になります。 というわけで、X方向の動きを改善したリストが下記のものです。 なお、ボールを画面内で停止させるため壁の反発係数を0.6に変えて空気抵抗係数も0.09では大きすぎると感じたので0.009に変えました。それに伴い停止処理のしきい値も1から0.1に変更しています。 ついでにボールが回転するようにしてみました。(ボールを回転させるためSPHOME 0,8,8としてスプライトの基準点を変更し地面との衝突処理もHY>214からHY>222に変更しています)