場面の切り替えで,別のページに移動して,また元のページに戻ってきたときに,プレイヤーの位置などの状態がゲームスタート時の状態にリセットされてしまうことがあります.
ページを切り替える前に状態をグローバル変数に保存しておき,元のページに戻ったときに状態を復元させることでこの問題を解決できます.
例:
Main
$player_x=100;
loadPage(Field);
Field
new Player;
Player
// $player_xからxを復元
x=$player_x;
y=200;
while(true) {
if(getkey("left")) x--;
if(getkey("right")) x++;
if (getkey("space")==1) {
// $player_xに値を保存
$player_x=x;
loadPage(Battle);
}
update();
}
Battle
new Label{text:"Battle", x:100, y:100};
updateEx(60);
loadPage(Field);