[Cocos Creator]横スクロールしてみる6.5 -改良-

cocos

前回全員の動きを止める処理を行いました。

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

スクリプトとかわかんねーよ!とかありましたらコメントなり、今後を見守ってください笑

コメント

タイトルとURLをコピーしました