CocosCreatorがスキル冷却効果を実装

CocosCreatorがスキル冷却効果を実装

CocosCreatorがスキルCD効果を実現

多くのゲームにはスキルがあります。プレイヤーがスキルボタンをクリックすると、そのスキルにはクールダウン時間があります。クールダウン時間が終了すると、そのスキルは再び使用できるようになります。

Cocos でこの効果を実現するのは非常に簡単です。スプライト コンポーネントを使用する必要があります。まず、スキル ボタンの画像をキャンバスにドラッグします。

次に、スキルボタンの下に新しいラベルを作成します
このような

次に、新しいTSスクリプトを作成し、次のコードをコピーして貼り付けます。

const {ccclass、プロパティ} = cc._decorator;

@ccクラス
デフォルトクラス NewClass をエクスポートし、cc.Component を拡張します。

    @property(cc.Sprite)
    skill:cc.Sprite = null; //スキルスプライト @property(cc.Label)
    time_label:cc.Label = null; //スキルクールの残り時間をテキストで表示します @property
    time:number = 3; //スキルのクールタイム @property
    isshow_label:boolean = true; //テキストを表示するかどうか onLoad(){
        this.skill.fillRange = 1; //ゲーム開始時のスキル充填範囲は1です
    }

    更新(dt:数値){
        if(this.skill.fillRange != 1){//スキルウィザードの充填度が1でない場合は、スキルが使用されたことを意味しますthis.skill.fillRange += dt / this.time;//スキルのフレームごとに復元される値は、フレームレート / スキルクールダウン時間ですthis.time_label.string = Math.floor(((1 - this.skill.fillRange) * this.time)).toString();//フレームごとにスキルの残り時間を更新します//スキルの残り時間は、最初に1 - スキルウィザードの充填度、次に* スキルクールダウン時間、最後にMath.floorで丸められますif(this.isshow_label == true){//テキストを表示できる場合this.time_label.node.active = true;//スキルクールダウンの残り時間を表示します} }
        if(this.skill.fillRange == 1){//スキルスプライトの塗りつぶしが 1 の場合、スキルがまだ使用されていないことを意味します this.skill.getComponent(cc.Button).interactable = true;//開始ボタン this.time_label.node.active = false;//スキルクールダウンの残り時間を非表示にします}
    }

    onbtn(){//スキルボタンが押されたときのイベント this.skill.fillRange = 0;//スキルの塗りつぶし範囲は0に設定されます
        console.log("使用されたスキル"); //ログを印刷
        this.skill.getComponent(cc.Button).interactable = false; //ボタンを無効にする}

}

コードの各行に詳細なコメントを記述しました。

書いたスクリプトをスキルボタンに掛けてノードをバインドする

必要に応じて変更可能

  • 時間はスキルのクールダウン時間です。好きなように変更できます。
  • Isshow_timeは、残りのクールダウン時間をテキストで表示するかどうかです。テキストを表示したくない場合は、チェックを外してください。デフォルトでは、

コードを書くだけでは十分ではありません。スキル ボタンの設定もいくつか行う必要があります。スプライト コンポーネントを変更し、スキル ボタンにボタン コンポーネントを追加する必要があります。

写真に合わせて調整してください

  1. タイプはスプライトのレンダリングモードを塗りつぶすように変更する必要があります
  2. 塗りつぶしタイプは塗りつぶし方法を扇形塗りつぶしに変更します
  3. 中心を塗りつぶすは、セクターの中心点を変更します。0,0 は左下隅、1,1 は右上隅です。中心点の周りをセクターで塗りつぶしたいので、0.5,0.5 に変更します。
  4. 塗りつぶし範囲は塗りつぶしの合計量を1に変更します

最後に、スキルボタンにボタンコンポーネントを追加します。

バインドされたイベントは onbtn です。見栄えを良くするには、ボタン コンポーネントの Transition を COLOR に変更します。

完了です。[実行] をクリックして確認してください。

本当に良い

スキルボタンをクリックしたら、onbtn にコードを入力するだけです。

ここに入れてください

例えば、スキルボタンを押すと特殊効果アニメーションを再生することができます

上記は、CocosCreator がスキル冷却効果を実装する方法の詳細です。CocosCreator スキル冷却の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • CocosCreatorでシューティングゲームを作る詳しい解説
  • CocosCreatorでクールなレーダーチャートを描く方法
  • CocosCreator MVCアーキテクチャの詳細な説明
  • CocosCreatorメッセージ配信メカニズムの詳細な説明
  • CocosCreator 入門チュートリアル: ネットワーク通信
  • CocosCreatorでWeChatゲームを作成する方法
  • CocosCreator システムイベントがどのように生成され、トリガーされるかについての詳細な説明
  • CocosCreatorでゲームコントローラーを使用する方法
  • CocosCreator Huarongdaoデジタルパズルの詳しい説明
  • CocosCreatorゲームにおける魚群アルゴリズムの詳細な説明
  • CocosCreator最適化DrawCallの詳細な説明
  • cocoscreatorプレハブの詳しい説明
  • Pythonはシンプルなソケット通信のサンプルコードを実装します
  • Python と Websocket を使用してリアルタイム ログ トラッカーを構築する手順
  • Javaはソケットを通じてシンプルな複数人チャットルームを実装する
  • CocosCreator で http と WebSocket を使用する方法

<<:  Dockerボリュームマウントの実装方法

>>:  MySQL 5.5.27 インストール グラフィック チュートリアル

推薦する

MySQLが日付フィールドインデックスを使用しない理由の要約

目次背景探検する要約する背景テーブルでは、dataTime フィールドは varchar 型に設定さ...

MySQL innodb B+ツリーの高さを取得する方法

序文MySQL の InnoDB エンジンがインデックスの保存に B+tree を使用する理由は、デ...

HTML の基礎必読 - CSS スタイルシートの包括的な理解

CSS (カスケーディング スタイル シート) は、HTML Web ページを美しくするために使用さ...

Docker で Oracle 11g イメージ構成をプルダウンする際の問題を分析する

1. イメージをプルするdocker pull レジストリ.cn-hangzhou.aliyuncs...

JavaベースのMySQLバックアップテーブル操作

コアはmysqldumpとランタイムです操作は実際にはそれほど難しくありません。バックアップ操作を実...

MySQLにおける区切り文字の定義と機能の詳細な説明

MySQL を初めて学ぶときは、区切り文字の本当の目的を理解していないかもしれません。区切り文字は、...

MySQL MyISAM デフォルト ストレージ エンジンの実装原則

デフォルトでは、MyISAM テーブルはディスク上に .frm (テーブル構造ファイル)、.MYD ...

MySQL の遅いクエリの最適化方法と最適化の原則

1. 日付のサイズを比較するには、XML に渡される日付形式は 'yyyy-MM-dd...

CSS ハック \9 と \0 は IE11\IE9\IE8 のハッキングには機能しない可能性があります

Web ページやフォームを設計するたびに、さまざまなブラウザ、特に IE ファミリの互換性の問題に悩...

さまざまなMySQLインデックスの使用方法の詳細な説明

1. 遅いクエリログ1.1 MySQL ログの種類ログは、データベースの操作や、ユーザーがデータベー...

カルーセルバナーの自動回転効果を実現する純粋な CSS

さっそくコードを見てみましょう * { マージン: 0; パディング: 0; } 。容器 { マージ...

nginx で http でアクセスする Web サイトを https に変更する方法

目次1. 背景2. 前提条件https:証明書システム: 3. 操作プロセス3.1 証明書の生成3....

オンライン MYSQL 同期エラーのトラブルシューティング方法の概要 (必読)

序文フェイルオーバーが発生した後、よくある問題は同期エラーです。データベースが小さい場合は、ダンプし...

ウェブページのフォント設定についての簡単な説明

サイト全体のフォントを設定することは、常にシンプルでありながら難しい作業です。深く掘り下げていくと、...

Centos7 esxi6.7 テンプレートの実際のアプリケーションの詳細な説明

1. Centos7.6システムを作成し、システムを最適化する1. NetworkManagerをオ...