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 のアクセス制御とパラメータ調整方法

推薦する

MySQL UPDATE ステートメントの「典型的な」落とし穴

目次1. 問題のあるSQL文たとえば、次の図のような質問をした人がいました。 問題は次のように要約で...

HTML テーブルタグチュートリアル (32): セルの水平方向の配置属性 ALIGN

水平方向では、セルの配置を左、中央、右に設定できます。基本的な構文<TD ALIGN=&quo...

HTML ハイパーリンク スタイル (4 つの異なる状態) の設定例

コードをコピーコードは次のとおりです。 <スタイル タイプ="text/css&qu...

マウスを置いたときに半透明効果のテキスト説明を実現するための純粋な CSS (初心者は必読)

効果は以下のとおりです。 例1 例2:例1[結婚式の計画]を例にとるHTML: <div cl...

nginx.conf ファイルの構文強調表示とフォーマット設定には nginx.vim ツールを使用します。

私はtengineを使用しています。インストールディレクトリは/usr/local/tengineで...

MySQLカバーインデックスの利点

一般的な提案は、WHERE 条件のインデックスを作成することですが、これは実際には一方的です。インデ...

HTMLページ間で値を渡す問題の解決策

初めてこのエッセイを使ったとき、私はかなりぎこちなく感じましたhtmlファイルコードをコピーコードは...

Docker - コンテナマウントディレクトリを変更する3つの方法のまとめ

方法 1: 設定ファイルを変更する (docker サービスを停止する必要があります) 1. doc...

Ubuntu 16.04 サーバーで MySQL を設定し、リモート接続を有効にする方法

背景最近、Node.js を勉強しているのですが、クラウド サーバーがあることを思い出しました。しか...

CSS を使用して同じ親タグの左側と右側に 2 つのボタンを配置する方法

この記事では、主に同じ親タグの左側と右側にある 2 つのボタンの CSS レイアウト方法を紹介し、皆...

Nginx ベースの Mencached キャッシュ構成の詳細な説明

導入Memcached は分散キャッシュ システムです。Memcached には認証とセキュリティ制...

MySQL で指定した桁数の乱数を生成する方法と、バッチで乱数を生成する方法

1. まず、よく使われるMySQL関数をいくつか紹介しますRAND() は 0 から 1 (0<...

Docker Compose を使用して ELK を迅速にデプロイする (テスト済みで効果的)

目次1. 概要1.1 定義1.2 機能説明2. ELKを展開する2.1 ディレクトリとファイルを作成...

MySQL複合インデックスの概要

目次1. 背景2. 複合インデックスを理解する3. 左端一致原則4. フィールド順序の影響5. 単一...

MySQL ストアド プロシージャの使用例の分析

この記事では、MySQL ストアド プロシージャの使用方法について説明します。ご参考までに、詳細は以...