CocosCreatorで複数のタイマーを使用する方法の詳細な説明

CocosCreatorで複数のタイマーを使用する方法の詳細な説明

1.タイムアウトを設定する

3 秒後に abc を印刷します。一度だけ実行します。

setTimeout(()=>{console.log("abc"); }, 3000);

タイマーを削除すると、3秒後にabcは出力されなくなります。

timeIndexを設定します。
timeIndex = setTimeout(()=>{console.log("abc"); }, 3000);
タイムアウトをクリアします(timeIndex);

setTimeoutはこのように書かれており、テスト関数のこの出力はWindowオブジェクトである。

@ccクラス
デフォルトクラスHelloworldをエクスポートし、cc.Componentを拡張します。
 
    プライベートa = 1;
 
    始める() {
        タイムアウトを設定します(this.test、3000);
    }
 
    プライベートテスト(){
        console.log(this.a); //出力は未定義
        console.log(this); //ウィンドウ
    }
}

矢印関数の使用

@ccクラス
デフォルトクラスHelloworldをエクスポートし、cc.Componentを拡張します。
 
    プライベートa = 1;
 
    始める() {
        タイムアウトを設定します(()=>{this.test()}, 3000);
    }
 
    プライベートテスト(){
        console.log(this.a); //出力1
        console.log(これ); //Helloworld
    }
}

2. 間隔を設定する

1 秒後に abc を出力します。このプロセスを繰り返して、1 秒ごとに abc を出力します。

setInterval(()=>{console.log("abc"); }, 1000);

タイマーを削除すると、abc は出力されなくなります。

timeIndexを設定します。
timeIndex = setInterval(()=>{console.log("abc"); }, 1000);
クリア間隔(時間インデックス);

スケジュール

継承された各cc.Componentにはこのタイマーがあります

スケジュール(コールバック: Function、間隔?: number、繰り返し?: number、遅延?: number): void;

3秒の遅延後にabcが出力され、その後1秒ごとにabcが出力され、これを5回繰り返します。したがって、最終的な出力は 5+1 × abc になります。

this.schedule(()=>{console.log("abc")},1,5,3);

スケジュールを削除します(削除する場合は匿名関数は使用できなくなります。削除する関数にアクセスできる必要があります)

プライベートカウント = 1;
 
始める() {
     
    this.schedule(this.test,1,5,3);
 
    this.unschedule(this.test);
}
 
プライベートテスト(){
    コンソールにログ出力します。
}

グローバルスケジュール

これは、cc.director のグローバル タイマーと同等です。 ID を登録するには enableForTarget() を呼び出す必要があることに注意してください。そうしないと、エラーが報告されます。

始める() {
    スケジューラを cc.Scheduler に代入します。cc.director.getScheduler();
    スケジューラ。ターゲットを有効にする(これ);
    //3 秒の遅延後に 1 を出力し、その後 1 秒ごとに 1 を出力し、これを 3 回繰り返します。合計 1+3 個の出力が出力されます。scheduler.schedule(this.test1, this, 1, 3,3, false);
    // 3 秒の遅延後に 1 を出力し、その後 1 秒ごとに 1 を出力し、これを無限に繰り返します。scheduler.schedule(this.test2, this, 1, cc.macro.REPEAT_FOREVER,3, false);
}
 
プライベートtest1(){
    コンソールにログ出力します。
}
 
プライベートtest2(){
    コンソールにログ出力します。
}
//タイマーを削除します。scheduler.unschedule(this.test1, this);

上記は、CocosCreator でいくつかのタイマーを使用する方法についての詳細な説明です。CocosCreator タイマーの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Unity3Dはカメラレンズの動きを実現し、角度を制限する
  • CocosCreator 学習モジュールスクリプト
  • CocosCreator で物理エンジン ジョイントを使用する方法
  • CocosCreatorでJSZip圧縮を使用する方法
  • CocosCreator 入門チュートリアル: TS で初めてのゲームを作る
  • CocosCreator ソースコードの解釈: エンジンの起動とメインループ
  • CocosCreator 一般的なフレームワーク設計リソース管理
  • CocosCreatorでリストを作成する方法
  • CocosCreator で http と WebSocket を使用する方法
  • CocosCreator の新しいリソース管理システムの分析
  • CocosCreator でカメラトラッキングに cc.follow を使用する方法

<<:  SQL実行ステップの詳細な分析

>>:  Nginx のアクセス制御とパラメータ調整方法

推薦する

Vueでドラッグ可能なコンポーネントを実装する方法

この記事では、Vueでドラッグ可能なコンポーネントとドラッグ可能なコンポーネントを実装する方法を参考...

Linux に nginx をインストールする方法

Nginx は C 言語で開発されており、Linux で実行することをお勧めします。もちろん、Win...

5分でReactルーティングについてお教えします

目次ルーティングとは純粋コンポーネントの基本的な使用純粋なコンポーネントの使用に関する注意事項ルーテ...

CSS フィルターを使用してマウスオーバー効果を記述する例

CSSフィルターを使用してマウスオーバー効果を記述する <div class="fi...

一般的な XHTML タグの紹介

<br />しばらくの間、多くの人が XHTML の使い方を知らないことに気付きました。...

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

最も単純な hello world 出力イメージを作成することは最も簡単なスタートですが、実行中のコ...

WeChatアプレットはシンプルな計算機を実装する

参考までにWeChatアプレットで書かれた簡単な計算機です。具体的な内容は次のとおりです。 jisa...

10分でCSS3グリッドレイアウトを理解する

基本的な紹介前回の記事では、CSS3 のフレックスボックスを紹介しました。今日は、CSS3 のもう ...

IE10以下のimgタグ問題の解決方法

問題を見つける以前、簡単なデモを書いたのですが、IE10以下では動作しないことがわかりました。ここに...

MySQLの自動増分主キーの実装の詳細な説明

目次1. 自己増分値はどこに保存されますか? 2. 自己価値修正メカニズム3. 自動増分値を変更する...

読めばわかるVueの8つのヒント

1. v-forでは常に:keyを使用するデータを操作する必要があるときにプログラムを一定かつ予測可...

JSはjQueryのappend関数を実装します

目次コードを見せてください効果をテストする効果追伸別のアプローチコードを見せてください HTMLEl...

Dockerコンテナでアプリケーションサービスを自動的に起動する方法の例

コンテナの起動時に Docker コンテナ内のアプリケーション サービスを自動的に起動する場合。 D...

雨滴効果を実現する JavaScript キャンバス

この記事では、雨滴効果を実現するためのJavaScriptキャンバスの具体的なコードを参考までに紹介...

JavaScript で文字列内の最長の単語を見つける 3 つの方法 (推奨)

この記事は、Free Code Camp の基本アルゴリズム スクリプト「文字列内の最長の単語を見つ...