【Egret Engine】メソッドを繰り返す方法「Timer」「StartTick」「Enter_Frame」

Egret Engine

はじめに

メソッドを一定間隔で繰り返す方法を紹介します。
Unityでいうところの「Update」と「FixedUpdate」に当たります。

・一定時間ごとに繰り返す→「Timer

・固定フレームで繰り返す→「StartTick

・フレームレートで繰り返す→「EnterFrame

 

準備

以下のスクリプトを用意してください。継承するクラスは egret.DisplayObjectContainer か eui.UILayer です。

今回は egret.DisplayObjectContainer で行います。

Main.ts

 

 

メソッドを繰り返す方法「Timer」「StartTick」「Enter_Frame」

「Timer」を使用した繰り返しメソッド

Main.ts

まず、「const timer:egret.Timer = new egret.Timer(ミリ秒, 繰り返し回数);」でegret.Timerを定義。繰り返し回数は0で無限に繰り返します。

次に、

で実行します。

timerを停止するときは

timerの実行間隔を途中で変更するときは一度stop()しないと、stage上にtimerが残っているので、処理が重複実行される場合があります。

 

繰り返し回数を設定し、繰り返しが終わった時に処理を実行する場合は「egret.TimerEvent.TIMER_COMPLETE」をaddEventListenerに使用します。

Main.ts

 

 

「StartTick」を使用した固定フレームでの繰り返し

Main.ts

60フレーム固定で繰り返しを行いたい場合は

のようにstartTickを記述してください。

使用するメソッドはboolean型の返り値が必要になります。公式ドキュメントによると、返り値がtrueのとき、コールバック関数が実行された直後に再描画し、falseなら再描画しないらしいです。しかし、今回は違いが見受けられませんでした。とりあえずfalseでいいでしょう。

繰り返しを止めるときは「egret.stopTick(this.timeMethod,this);」のように宣言してください。

 

 

「EnterFrame」を使用したフレームレートでの繰り返し

Main.ts

フレームレートでメソッドを繰り返す場合は「 this.addEventListener(egret.Event.ENTER_FRAME, this.timeMethod, this);」を使用します。

フレームレートはパソコンの性能によって処理速度が異なりますので、移動などではStartTickを使用してください。

ENTER_FRAMEは連続したアニメーションなどで使用します。UnityでいうところのUpdateです。

 

おわりに

フィア
これで繰り返しはバッチリだね!
カレン
きっちり使い分けられるようにマスターしてね!

 

Github

Githubにてコード公開中です。

 

HTML5 Egret Engine 入門へ戻る

HTML5 Egret Engine 入門へ戻る

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