PX,PYとCX,CYが存在していますがCX,CYが使われていないようです。 Gの挙動には問題ないと思うのでGを足す前の座標を保存しておいてBGGETで壁のチェックがOKなら座標を反映、ダメなら反映しないという流れで行けると思います。 あとジャンプ中にもう一度Aボタンが押せる意味はホバリングですか? まずはJP=0とJP=1のシンプルな動作からやってみては。