外部イベントを関数で置き換える例
外部イベントはイベントを共有/再利用するためのよい方法です。関数はそれをさらに一歩進めて、たとえばオブジェクトのようなパラメーターを受け取ることができるようにします。
外部イベントを使った例
オブジェクトを仮想グリッドを基準に整列する次のようなイベントがあります。
これをシーンに組み込んで、次のように使うことができます。
唯一の問題は、これが再利用できないということです。このイベントが仮想グリッドに沿って整列させるのは、「Tile」という名前のオブジェクトだけだからです。では、グリッドに沿って整列させたい任意のオブジェクトを渡して呼び出せる関数があったとしたら、どうでしょうか?
関数を使った例
今度はイベントの代わりに、整列させたいオブジェクトをパラメーターに受け取る関数を宣言してみましょう。
整列させるオブジェクトを「Tile」と呼んでいますが、何かもっと一般的な名前に変更することも可能です。
イベントからこの関数を呼び出すのは、とても簡単です。新しいアクションとして使うだけなので。
この方法の長所は、新しいアクションを使うとどんなオブジェクトでもグリッドに沿って整列できるということです。またこれを抽出して、他のゲームで再利用することすらできるます。
Tip
ここで作成したものは、すでに実用化されています。便利な拡張機能の中にある "Snap Objects to a virtual grid" がよく似たアクションを提供しています。