Godot: CanvasItem
概要説明
全ての2Dのベースクラス
ちなみに、Editor上で CanvasItem 単体はNode として作成できない
https://gyazo.com/ab70713ee5c3e2ea7afbc41b30916ad6
SceneTreeの順番に描画される
子が先で親である root が最後になる
hide できる
親が hide したら、その子も hide される
Ultimately, a transform notification can be requested, which will notify the node that its global position changed in case the parent tree changed.
親ツリーが変化した場合に、その global position の変化を通知で受け取れる
Note: Unless otherwise specified, all methods that have angle parameters must have angles specified as radians. To convert degrees to radians, use @GlobalScope.deg_to_rad.
基本的には 角度パラメータは radian で扱う。degree で扱いたい場合は、deg_to_rad()関数を活用すればいい
Signals
draw ( )
再描画する時に emit ( _drawが実行される前)
hidden ( )
hidden になる時に emit
item_rect_changed ( )
Rect2 のサイズが変化した時に emit
visibility_changed ( )
visibility が変化した時に emit
主なプロパティ
Material material
この CanvasItem の texture に適用する material
Color modulate = Color(1, 1, 1, 1)
この CanvasItem の texutre に適用する color
Color self_modulate = Color(1, 1, 1, 1)
この CanvasItem の texutre に適用する color で、子供には継承されない
TextureFilter texture_filter = 0
bool visible = true
可視化する。ただし、親ノードも全て visible = true じゃないといけない
bool y_sort_enabled = false
y-sort を有効にする
bool z_as_relative = true
trueの場合、z_index の値が 親の z_index との相対値になる。
親の z_index が 3 で、その子の z_index が 2 の場合、 2 + 3 = 5 になる
int z_index = 0
z_index 値が高いほど、手前に描画される
描画順のみに影響し、input event の実行順には影響しない
主なメソッド
void _draw ( ) virtual
redraw のリクエスト
draw_* 関連のメソッド
様々な描画ができるメソッドがある
arc や char, circle などなど
void force_update_transform ( )
強制的に transform をアップデートする
Vector2 get_global_mouse_position ( ) const
このCanvasItemが含まれるCanvasLayerの座標系でマウスの位置を返す
Vector2 get_local_mouse_position ( ) const
この CanvasItem の ローカル座標系でマウスの位置を返す
void hide ( )
hide する
void queue_redraw ( )
Queue に redraw 要求を追加し、idle 時に描画する
void show ( )
show する
カスタム描画の例