Tonyu2の画面はいくつかの層(レイヤー)から成り立っています。
※ここでの「レイヤー」はマップにおける「手前のレイヤー」などとは別の概念です.
$uiLayer
、その中に配置されたゲーム画面を$Screenと呼びます。$frontLayer
、$mainLayer
、$backLayer
という3つのレイヤーからなります。オブジェクト(Actor)を生成すると、通常は$mainLayerに配置されます(※)が、生成時にlayerフィールドを設定すると、他のレイヤーに配置できます。
例:
new ScoreLabel{x=100, y=400, text="Score: 0", layer=$frontLayer};
あるクラスにおいて,layerフィールドを省略した場合に配置されるレイヤーは defaultLayer プロパティを定義すると変更できます.
\defaultLayer {
return $frontLayer;
}
なお,次のオブジェクトはデフォルトで$frontLayerに配置されます。
Screen.setDefaultLayerメソッドを呼び出すと,layerフィールドを省略したときに配置されるレイヤーを変更できます. ただし,上記のdefaultLayerプロパティを定義したクラスのオブジェクトおよび「デフォルトで$frontLayerに配置される」オブジェクトは,setDefaultLayerの影響を受けません.
$Screen.scrollToメソッド を用います。デフォルトでは$mainLayerをスクロールの対象としていますが、$Screen.selectLayerで別のレイヤーもスクロール可能です。
$Screen.convertメソッドを用いると、 あるレイヤーに置かれているオブジェクトの座標を、見た目の位置を変えずに別のレイヤーの座標に変換することができます。
$touchesおよび、$mouseX, $mouseYの座標系はデフォルトでは$Screenの左上を(0,0)、右下を($screenWidth, $screenHeight)としたものになっています。
$InputDevice.defaultLayerで座標系を変更できます。
.