例としてはXとYを操作する処理をする前に SAVE_X=X:SAVE_Y=Y という風に別の変数に代入しておいて、戻った時に逆の手順、つまり X=SAVE_X:Y=SAVE_Y という処理を書き足すといいと思いますよ。 ぶっちゃけ、キャラクター表示用の変数とメニュー選択用の変数を別名にしておいて、ゲームスタート時の初期化する処理もメインループの外にしておけば変数の中を変えていないので、一時的に記憶させる変数を用意しなくても済むんですが。 自分が満足いくようなプログラムになるまで諦めないでね!