前回全員の動きを止める処理を行いました。
Player.jsやScrollBackGround.jsとかに直接書いていきましたが、ゲーム全体の設定などをこれから書いて行くと考えると、別のスクリプトに書いた方が良いと思いまして、、、、変更します。
色々いじった方申し訳ないです。
新たにGameManager.jsというスクリプトを用意します。
var Status = cc.Enum ({ READY: 0, RUNNING: 1, GAMEOVER: 2 }); cc.Class({ extends: cc.Component, properties: { // ゲームの状態 _status: Status.READY, }, // 静的メンバ変数 statics: { Status }, // use this for initialization onLoad: function () { this._status = Status.RUNNING; }, exeGameOver: function() { // ゲーム全体の衝突判定OFF cc.director.getCollisionManager().enabled = false; // ゲームオーバーフラグ this._status = Status.GAMEOVER; } // called every frame, uncomment this function to activate update callback // update: function (dt) { // }, });
前回色々なスクリプトに書いたのをまとめたようなもんですね。ポイントとしては、Class宣言の前の列挙型ですかね。
ゲームの状態を判定するのに使うものです。数値で判定するのですが、数値だとどの状態がどの数値なのかわからなくなるので、定数を設定してそこに数値をいれています。
あとは前回でゲームオーバーの処理をしたところをこのGameManager.jsを呼び出す処理に変更します。
スクリプトをいじり終えたらノードツリー(ヒエラルキー)に手を加えます。
Canvasの外側に空のノードを作成します。名前はGameManagerにします。
その後、そのノードに先ほどのスクリプトをアサインします。
今までは画像を一つのオブジェクトとして扱って来ましたが、今回はスクリプトをオブジェクトとして扱って、再利用する感じです。
この方がゲームの設定を変えるなど変更するときもやり易いかな。。。。とオブジェクト思考しました。
そんな感じで終わったら↓のような感じになると思います。
6_5
スクリプトとかわかんねーよ!とかありましたらコメントなり、今後を見守ってください笑
コメント