This repository has been archived by the owner on Dec 26, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 10
[prior to 3.0] 独自のクラスをScene、SceneObjectとして使用する
Yuya Matsuo edited this page Sep 12, 2016
·
1 revision
Scene
を継承した独自クラスを作成し、<scene class="クラス名">
のように記述することで該当クラスをインスタンス化して利用することができます。このクラスには引数のないコンストラクタが必要です。
public class MyScene extends Scene {
}
<scene class="com.yourcompany.MyScene">
<object
id="myObject"
texture="@layout/hello_world"
width="1.0"
height="1.0"
z="-5.0" />
</scene>
同じようにSceneObject
を継承した独自クラスを作成し、<object class="クラス名">
のように記述することで該当クラスをインスタンス化して利用することができます。このクラスには引数のないコンストラクタが必要です。
public class MyObject extends SceneObject {
}
<scene>
<object
class="com.yourcompany.MyObject"
id="myObject"
texture="@layout/hello_world"
width="1.0"
height="1.0"
z="-5.0" />
</scene>
独自クラスを作成することの利点は、内部で様々な動作が発生する複雑なシーンやシーンオブジェクトをカプセル化できることです。特に複数のシーンで構成されるアプリケーションを作成する場合は、Sceneを継承した独自クラスを利用することをおすすめします。
Scene
を継承したクラスでは以下のメソッドをオーバーライドすることでシーンの切り替えに合わせた処理を実行できます。
メソッド名 | 説明 |
---|---|
initialize | シーンが初めてレンダリングされる直前に一度だけ呼び出されます。 findObjectById を使ってシーン内のオブジェクトをキャッシュしておくと良いでしょう。 |
onResume |
MeganekkoApp.setScene() でシーンがアクティブになる時に呼び出されます。 |
onPause |
MeganekkoApp.setScene() で他のシーンがアクティブになる時、つまり現在のシーンの描画が行われなくなる時に呼び出されます。 |
update | フレームごとに呼ばれます。オブジェクトの状態を変更したりユーザーの操作に応答したりする処理はだいたいここに書かれます。通常は1秒間に約60回実行されます。 |
onKeyDown onKeyShortPress |
戻るボタンやキーボードが押された時に呼び出されます。通常は戻るボタンを無効化したり代わりに「戻る」に相当する処理を実行する際に使います。 |
Context
が必要な場合はgetApp().getContext()
で取得できます。