このページを正しく表示するにはJavascriptを有効にしてください。
enchant.jsでゲーム終了後リトライ機能をつける
ゲーム終了後に再度遊べるようにするリトライ機能の実装方法について。
公式のドキュメントに記載がないので
```location.reload()```
で読み込みをリセットしていたのですが、
画面が反転する、リロードに時間がかかるなど
あまりいいやり方ではないので解決策を探してました。
[proper way to restart? #249](https://github.com/wise9/enchant.js/issues/249)
>You can create the new scene that provides game rules on each restarting.
>For example,
``` js
function createGameScene() {
var scene = new Scene();
return scene;
}
// call when you need restarting
function restart(core) {
core.replaceScene(createGameScene());
}
core.onload = function() {
restart(this);
};
```
onloadの部分を加工してあげて、
毎回シーンのクロージャをcreateGameSceneで
生成してあげるようにすれば簡単にリロードが実装できるみたいです。
リスタートボタンを作ってその中でrestart(core)してあげるだけです。
(他のドキュメントに合わせるならcoreをgameに読み替えます)
こうすることでグローバルに依存した変数とかがなければ
まっさらな状態でスムーズにゲームをリセット出来るようになります。