その辺になるともうプチコンの機能ではなくてプログラムの作りとか流れとかになっちゃうかも?
キャラ移動開始時にSPANIM で移動処理のぜんぶを指定して、SPANIMが終わる時間をSPANIMに指定した時間の値かSPCHKでチェックしてそうな感じなので、SPANIMを途中でやめたいならSPSTOPで止めてからSPOFS sp OUT x,y で止めた場所の座標を取得することはできます。
ジャンプみたいな放物線は SPANIMで指定はできないので、ジャンプをアニメーションしたい場合は、自分でアニメーション処理を書いた方が良いです。
コマンド入力完了時やCPU行動開始時にキャラ移動処理としてSPANIMだけを実行していて、1フレームごとのアニメーション用の処理がまだ無い場合、まずは1フレームごとにキャラを移動してアニメーションする処理を作る必要があります。
SPANIMに指定している横移動量と、ジャンプ用の速度変数や重力加速度定数などを用意して、アニメーション処理でジャンプ用の速度変数に重力加速度を加算して縦座標に速度変数を加算して位置を計算してSPOFSをする感じになります。
なお、SPFUNCを使うとたくさんのスプライトに同じ処理をしたり、スプライトの処理をメインの処理とは別に書けるので見やすくなったり書いたプログラムがわかりやすくなったりはします。
1キャラだけで使うとしても、キャラの状態変数や速度や移動量など変数を設定して、CALL SPRITEで呼び出されたらその変数の通りに移動だけする処理みたいなのにも使えます。
ちなみに、二段ジャンプの場合、通常ジャンプ処理で上方向の速度変数を初期化していますが、二段ジャンプ目にさらに速度変数をジャンプ開始時の値で初期化すれば、二段ジャンプになります。
CPU行動中に相手の行動をみて二段ジャンプするかどうかは、CPUロジックの作り方次第になっちゃうので、CPUがジャンプ中に相手が行動した場合、相手までの距離に応じて二段ジャンプ開始したりしなかったりとかになったりします。