[Cocos Creator]横スクロールしてみる14 -無敵モード-

cocos

さてさて、連載終了かと思いきや笑

デバッグ(遊んでもらってるだけ)してもらってる友達に相談したら無敵モードでも作ってみたら?と。

所謂○リオの○ター状態。もしくは、○ラワーを取った時のような、武器を装備した状態。

以前にハエをトイレで流す武器は作ったので、無敵モードを実装してみたいと思います。

まずはアニメーションを上図のように作成します。
久しぶりなので以前のブログで確認してください。(自分も確認した)

それでは、無敵…..もとい、ハエたたきモードを作成していきます。
アイテムを回収して。。。は以前やったので、今回はゲージを溜めていきたいと思います。

ProgressBarというのを使ってみたいと思います。

設定は下図のような感じで。。。
ここら辺は使ってみて設定しての繰り返しです。。はい。

メーターみたいなゲージが出来上がりました。親ノードが入れ物みたいなもので、子ノードのbarというのが実際に溜まっていくバーぽいです。

スクリプトですが、ちょっと、醜いものになりました。設計って大事だなって思いました。

GameManager.jsのプロパティに追記します

        // ハエたたきゲージ
        swatterGage:{
            default: null,
            type: cc.ProgressBar
        },
        // ハエたたきモード値
        _swatterValue: 0,
        // ハエたたきモードかどうか
        _isSwatter: false,

そしたら、メソッドを作成します。

    swatterIncrement: function (value) {
        if (this._isSwatter) this._swatterValue += value;
        // 100以上にはしないようにする
        if (this._swatterValue >= 100) this._swatterValue = 100;
        // ゲージの満タンが100だとする
        this.swatterGage.progress = this._swatterValue / 100;
        // ハエたたきモード突入
        if (this._swatterValue >=100 && !this._isSwatter ) this._isSwatter = true;
    },

こんな感じで、メソッドが呼び出されたら裏で持ってる変数(上限100)に値を足していって
その百分率でゲージを増やしていってます。

このメソッドをupdate()で常に監視して実行していきます。

 // ハエたたきモード
        if (this._isSwatter) {
            this._swatterValue -= (20 * dt);
            this.swatterGage.progress = this._swatterValue / 100;
            // ゲージが最後まで減ったら普通の走りに戻す
            if (this._swatterValue <= 0) {
                this._swatterValue = 0;
                this._isSwatter = false;
            }
        }

Player.jsの方でハエたたきモードの時はキャラクターのアニメーションを変える記述を追加して終了です。

いい感じに仕上がると↓の感じに
14

増えるゲージが早いのは動画のためだからです笑

では、次回はこのハエたたきモードでハエを倒していきたいと思います。

コメント

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