api

座標系とレイヤー

Tonyu2の画面はいくつかの層(レイヤー)から成り立っています。

※ここでの「レイヤー」はマップにおける「手前のレイヤー」などとは別の概念です.

layers.png

layers2.png

オブジェクトを配置するレイヤーの指定

オブジェクト(Actor)を生成すると、通常は$mainLayerに配置されます(※)が、生成時にlayerフィールドを設定すると、他のレイヤーに配置できます。

例:

new ScoreLabel{x=100, y=400, text="Score: 0", layer=$frontLayer};

デフォルトのレイヤー

あるクラスにおいて,layerフィールドを省略した場合に配置されるレイヤーは defaultLayer プロパティを定義すると変更できます.

\defaultLayer {
    return $frontLayer;
}

なお,次のオブジェクトはデフォルトで$frontLayerに配置されます。

※setDefaultLayerメソッド

Screen.setDefaultLayerメソッドを呼び出すと,layerフィールドを省略したときに配置されるレイヤーを変更できます. ただし,上記のdefaultLayerプロパティを定義したクラスのオブジェクトおよび「デフォルトで$frontLayerに配置される」オブジェクトは,setDefaultLayerの影響を受けません.

レイヤーのスクロール

$Screen.scrollToメソッド を用います。デフォルトでは$mainLayerをスクロールの対象としていますが、$Screen.selectLayerで別のレイヤーもスクロール可能です。

レイヤー間の座標変換

$Screen.convertメソッドを用いると、 あるレイヤーに置かれているオブジェクトの座標を、見た目の位置を変えずに別のレイヤーの座標に変換することができます。

マウスおよびタッチの座標系

$touchesおよび、$mouseX, $mouseYの座標系はデフォルトでは$Screenの左上を(0,0)、右下を($screenWidth, $screenHeight)としたものになっています。

$InputDevice.defaultLayerで座標系を変更できます。

.

Backlink