Myタスクシステムレポート5

前回の続きです。
最終回は近いです。


前回現れた、「BallFactoryタスク」を見てみましょう。

BallFactory.as

いよいよ、タスクシステムを使う場合のメイン部品であるタスクを見ていきます。
taskフォルダ内のBallFactory.asを見てみましょう。
名前から予想できますが、このタスクはボールを生み出す役割を持っています。

class task.BallFactory extends Task

クラス名を見てみると、Taskクラスを継承していますね。
これでこのBallFactoryクラスをタスクとして扱うことができます。
タスクとして使うクラスを作るときはTaskクラスを継承しましょう。


まず最初に呼び出されるコンストラクタについてです。
引数は、この場合InitGameクラス内で呼び出されたときに指定した_rootが入っています。


次はTaskクラスのコンストラクタを実行します。

super(createBall, 1);

第1引数は、最初に処理関数に割り当てられるメソッドを指定しています。
下のほうにcreateBallメソッドがありますね。
今後このメソッドが実行され続けるわけです。
第2引数は処理優先度を指定しています。
今回は特に実行順序に気を使うつもりはないので、適当に1としています。


次は処理関数に割り当てられたcreateBallメソッドを見てみます。
ifやforを書いていますが、ただボールの出方を調節しているだけなので、
好きに設定してみてください。
大切なところは、

TaskList.addTask(new Ball(_stageMc));

です。
もうここまできたらなんとなく意味が分かると思いますが、
Ballタスクをタスクリストに追加しています。
つまりボールを実際に生み出している部分ですね。
引数は今回の場合_rootです。




次回で最終回となりそうです。
最後のBallタスクについて解説しようと思います。