場面の切り替えで,別のページに移動して,また元のページに戻ってきたときに,プレイヤーの位置などの状態がゲームスタート時の状態にリセットされてしまうことがあります.
ページを切り替える時にloagPageの第2引数にtrueを指定すると,移動先のページでloadPage()
を実行すると状態を復元させることができます.
例:
Main
new Label{text:"メインフィールド",x:100,y:100};
$player=new Player{x:200,y:200,p:$pat_neko,hp:10};
new Enemy{x:300,y:200,p:$pat_neko+45, hp:5};
new Enemy{x:350,y:200,p:$pat_neko+46, hp:20};
Player
while(true) {
if(getkey("left")) x--;
if(getkey("right")) x++;
e=crashTo(Enemy);
if (e) {//敵に触れたら
$enemy=e;
//戦闘画面に移動するが,trueを指定すると後で戻ってくることができる.
loadPage(Battle,true);
//戦闘画面から戻ってくるとここから再開
if($win){
e.die();
} else {
x-=10;
}
}
update();
}
Battle
new Label{text:"戦闘画面",x:100,y:100};
print("戦闘!");
updateEx(30);
print("相手HP: "+$enemy.hp);
updateEx(30);
if ($player.hp>$enemy.hp){
print("勝った!");
$win=true;
} else {
print("負けた!");
$win=false;
}
updateEx(60);
loadPage();//前のページに戻る.
Enemy
//中身は空でよいが,ファイルは作成する