Options
All
  • Public
  • Public/Protected
  • All
Menu

Class SystemLabel

システムフォントで文字列を描画するエンティティ。

ここでいうシステムフォントとは、akashic-engine実行環境でのデフォルトフォントである。 システムフォントは実行環境によって異なる場合がある。したがって SystemLabel による描画結果が各実行環境で同一となることは保証されない。 その代わりに SystemLabel は、Assetの読み込みなしで文字列を描画する機能を提供する。

絵文字などを含むユニコード文字列をすべて BitmapFont で提供する事は難しいことから、 このクラスは、事実上akashic-engineにおいてユーザ入力文字列を取り扱う唯一の手段である。

SystemLabel はユーザインタラクションの対象に含めるべきではない。 上述のとおり、各実行環境で描画内容の同一性が保証されないためである。 ユーザ入力文字列を含め、 SystemLabel によって提示される情報は、参考程度に表示されるなどに留めるべきである。 具体的には SystemLabeltouchable にする、 Util.createSpriteFromE() の対象に含めるなどを行うべきではない。 ボタンのようなエンティティのキャプション部分も出来る限り Label を用いるべきで、 SystemLabel を利用するべきではない。

また、akashic-engineは SystemLabel の描画順を保証しない。 実行環境によって、次のどちらかが成立する:

  • SystemLabel は、他エンティティ同様に Scene#children のツリー構造のpre-order順で描かれる。
  • SystemLabel は、他の全エンティティが描画された後に(画面最前面に)描画される。

実行環境に依存しないゲームを作成するためには、SystemLabel はこのいずれでも正しく動作するように利用される必要がある。

Hierarchy

  • E
    • SystemLabel

Implements

Index

Constructors

constructor

  • 各種パラメータを指定して SystemLabel のインスタンスを生成する。

    Parameters

    Returns SystemLabel

Properties

Private _hasTouchableChildren

_hasTouchableChildren: boolean

子にtouchableなものが含まれているかどうかを表す。

Private _matrix

_matrix: Matrix

変換行列のキャッシュ。 Object2D は状態に変更があった時、本値の_modifiedをtrueにする必要がある。 初期値は undefined であり、 getMatrix() によって必要な時に生成されるため、 if (this._matrix) this._matrix._modified = true という式で記述する必要がある。

エンジンに組み込まれているSprite等のエンティティ群は、 すでに本処理を組み込んでいるため通常ゲーム開発者はこの値を意識する必要はない。 Object2D を継承したクラスを新たに作る場合には、本フィールドを適切に操作しなければならない。

Private _targetCameras

_targetCameras: Camera[]

このEが「映り込む」カメラの集合。 空でない配列が指定されている場合、配列内に存在しないCameraでの描画時にはこのEがスキップされる。 初期値はundefinedである。targetCamerasがこの値を暗黙に生成するので、ゲーム開発者はそちらを使うべきである。

anchorX

anchorX: number | undefined

オブジェクトのアンカーの横位置。アンカーについては以下の通り。

  • アンカーとして設定した箇所がこのオブジェクトの基点 (位置、拡縮・回転の基点) となる。
  • 単位は相対値 (左上端が (0, 0) 中央が (0.5, 0,5) 右下端が (1,1) ) である。 anchorXとanchorYの両方が省略された場合、このオブジェクトの位置 (x, y) は左上端を基準に決定され、拡縮・回転の基点は中央座標となる。 これは前バージョンとの互換性のための挙動である。 anchorX, anchorYのどちらかのみを指定した場合の動作は不定である。 初期値は undefined である。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

anchorY

anchorY: number | undefined

オブジェクトのアンカーの縦位置。アンカーについては以下の通り。

  • アンカーとして設定した箇所がこのオブジェクトの基点 (位置、拡縮・回転の基点) となる。
  • 単位は相対値 (左上端が (0, 0) 中央が (0.5, 0,5) 右下端が (1,1) ) である。 anchorXとanchorYの両方が省略された場合、このオブジェクトの位置 (x, y) は左上端を基準に決定され、拡縮・回転の基点は中央座標となる。 これは前バージョンとの互換性のための挙動である。 anchorX, anchorYのどちらかのみを指定した場合の動作は不定である。 初期値は undefined である。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

angle

angle: number

オブジェクトの回転。度数で指定する。 初期値は 0 である。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

children

children: E[]

このエンティティの全子エンティティ。 子エンティティが存在しない場合、本フィールドの値は undefined または空配列である。

compositeOperation

compositeOperation: CompositeOperation

描画時の合成方法を指定する。 初期値は undefined となり、合成方法を指定しないことを意味する。 E においてこの値を変更した場合、 modified() を呼び出す必要がある。

fontFamily

fontFamily: FontFamily

フォントファミリ。 初期値は FontFamily.SansSerif である。 現バージョンのakashic-engineの SystemLabel において、この値の指定は参考値に過ぎない。 そのため、実行環境によっては無視される事がありうる。 この値を変更した場合、 this.modified() を呼び出す必要がある。

fontSize

fontSize: number

フォントサイズ。 0以上の数値でなければならない。そうでない場合、動作は不定である。 この値を変更した場合、 this.modified() を呼び出す必要がある。

height

height: number

このオブジェクトの縦幅。 初期値は 0 である。実際の表示領域としてはscaleX, scaleY, angleの値も考慮する必要がある。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

id

id: number

このエンティティに割り振られる Game 単位で一意のID。(ただし local が真である場合を除く)

local

local: boolean

このエンティティがローカルであるか否か。 コンストラクタで真が指定された時、または属するシーンがローカルシーンまたはローカルティック補間シーンである時、この値は真である。

この値が真である場合、このエンティティに対する point イベントはこのゲームインスタンスにのみ通知され、 他の参加者・視聴者には通知されない。また真である場合、 id の値の一意性は保証されない。

この値は参照のためにのみ公開されている。ゲーム開発者はこの値を直接変更してはならない。

maxWidth

maxWidth: number

描画時に考慮すべき最大幅。 初期値は undefined である。 数値である場合、エンジンはこの幅を超える長さの文字列について、この幅に収まるように描画するよう要求する。その方法は環境に依存する。 この値を変更した場合、 this.modified() を呼び出す必要がある。

message

このエンティティのmessageイベント。

opacity

opacity: number

0~1でオブジェクトの不透明度を表す。 初期値は 1 である。本値が0の場合、Rendererは描画処理を省略する。 E においてこの値を変更した場合、 modified() を呼び出す必要がある。

parent

parent: E | Scene

親。

pointDown

このエンティティのpoint downイベント。

pointMove

このエンティティのpoint moveイベント。

pointUp

このエンティティのpoint upイベント。

scaleX

scaleX: number

オブジェクトの横方向の倍率。 初期値は 1 である。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

scaleY

scaleY: number

オブジェクトの縦方向の倍率。 初期値は 1 である。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

scene

scene: Scene

このエンティティが属するシーン。

shaderProgram

shaderProgram: ShaderProgram

このエンティティの描画時に利用されるシェーダプログラム。 isSupportedShaderProgram() が偽を返す g.Rendere で描画される時、 g.Renderer#setShaderProgram() は呼ばれないことに注意。

また g.FilledRect やその親エンティティに本値を指定した場合、対象の g.FilledRect の描画結果は不定である。 これは実装上の制限に基づく現バージョンの仕様である。

この値が undefined である場合、親のシェーダプログラムが利用される。 この値が null である場合、明示的にデフォルトのシェーダプログラムが利用される。

この値を変更した場合、 this.modified() を呼び出す必要がある。

state

様々な状態を表すビットフラグ。

strokeColor

strokeColor: string

輪郭色。CSS Colorで指定する。 初期値は "black" である。 この値を変更した場合、 this.modified() を呼び出す必要がある。

strokeOnly

strokeOnly: boolean

文字の描画スタイルを切り替える。初期値は false である。 true を指定した場合、文字全体は描画されず、輪郭のみ描画される。 false を指定した場合、文字全体と輪郭が描画される。 この値を変更した場合、 this.modified() を呼び出す必要がある。

strokeWidth

strokeWidth: number

輪郭幅。初期値は 0 である。 0以上の数値でなければならない。0を指定した場合、輪郭は描画されない。 この値を変更した場合、 this.modified() を呼び出す必要がある。

tag

tag: any

ゲーム開発者向けのタグ情報管理コンテナ。 この値はゲームエンジンのロジックからは使用されず、ゲーム開発者は任意の目的に使用してよい。

targetCameras

targetCameras: Camera[]

このエンティティを表示できるカメラの配列。

初期値は空配列である。 この値が undefined または空配列である場合、このエンティティとその子孫はカメラによらず描画される。 空でない配列である場合、このエンティティとその子孫は、配列内に含まれるカメラでの描画の際にのみ表示される。

この値を変更した場合、 this.modified() を呼び出す必要がある。

text

text: string

描画する文字列。 この値を変更した場合、 this.modified() を呼び出す必要がある。

textAlign

textAlign: TextAlign

文字列の描画位置。 初期値は TextAlign.Left である。 この値を変更した場合、 this.modified() を呼び出す必要がある。

textBaseline

textBaseline: TextBaseline

文字列のベースライン。 初期値は TextBaseline.Alphabetic である。 この値を変更した場合、 this.modified() を呼び出す必要がある。

textColor

textColor: string

文字色。CSS Colorで指定する。 初期値は "black" である。 この値を変更した場合、 this.modified() を呼び出す必要がある。

touchable

touchable: boolean

プレイヤーにとって触れられるオブジェクトであるかを表す。

この値が偽である場合、ポインティングイベントの対象にならない。 初期値は false である。

E の他のプロパティと異なり、この値の変更後に this.modified() を呼び出す必要はない。

update

update: Trigger<void>

時間経過イベント。本イベントの一度のfireにつき、常に1フレーム分の時間経過が起こる。

width

width: number

このオブジェクトの横幅。 初期値は 0 である。実際の表示領域としてはscaleX, scaleY, angleの値も考慮する必要がある。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

x

x: number

このオブジェクトの横位置。 初期値は 0 である。実際の座標位置はscaleX, scaleY, angle, anchorX, anchorYの値も考慮する必要がある。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

y

y: number

このオブジェクトの縦位置。 初期値は 0 である。実際の座標位置はscaleX, scaleY, angle, anchorX, anchorYの値も考慮する必要がある。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

Methods

Private _calculateBoundingRect

Private _disableTouchPropagation

  • _disableTouchPropagation(): void

Private _enableTouchPropagation

  • _enableTouchPropagation(): void

Private _isTargetOperation

Private _updateMatrix

  • _updateMatrix(): void
  • 公開のプロパティから内部の変換行列キャッシュを更新する。

    Returns void

anchor

  • anchor(x: number, y: number): void
  • オブジェクトのアンカーの位置を設定する。 このメソッドは anchorXanchorY を同時に設定するためのユーティリティメソッドである。 ECamera2D においてこのメソッドを呼び出した場合、 modified() を呼び出す必要がある。

    Parameters

    • x: number
    • y: number

    Returns void

append

  • append(e: E): void
  • 子を追加する。

    Parameters

    • e: E

      子エンティティとして追加するエンティティ

    Returns void

calculateBoundingRect

destroy

  • destroy(): void
  • このエンティティを破棄する。

    親がある場合、親からは remove() される。 子孫を持っている場合、子孫も破棄される。

    Returns void

destroyed

  • destroyed(): boolean
  • このエンティティが破棄済みであるかを返す。

    Returns boolean

findPointSourceByPoint

  • 自身と自身の子孫の中で、その座標に反応する PointSource を返す。

    戻り値は、対象が見つかった場合、 target に見つかったエンティティを持つ PointSource である。 対象が見つからなかった場合、 undefined である。戻り値が undefined でない場合、その target プロパティは次を満たす:

    • このエンティティ(this) またはその子孫である
    • E#touchable が真である
    • カメラ camera から可視である中で最も手前にある

    Parameters

    • point: CommonOffset

      対象の座標

    • Optional m: Matrix

      this に適用する変換行列。省略された場合、単位行列

    • Optional force: boolean

      touchable指定を無視する場合真を指定する。省略された場合、偽

    • Optional camera: Camera

      対象のカメラ。指定されなかった場合undefined

    Returns PointSource

game

  • このエンティティが属する Game を返す。

    Returns Game

getMatrix

  • このオブジェクトの変換行列を得る。

    Returns Matrix

hide

  • hide(): void
  • このEを非表示状態にする。

    this.show() が呼ばれるまでの間、このエンティティは各 Renderer によって描画されない。 また Game#findPointSource() で返されることもなくなる。 this#pointDown, pointMove, pointUp なども通常の方法ではfireされなくなる。

    Returns void

insertBefore

  • insertBefore(e: E, target: E): void
  • 子を挿入する。

    targetthis の子でない場合、append(e) と同じ動作となる。

    Parameters

    • e: E

      子エンティティとして追加するエンティティ

    • target: E

      挿入位置にある子エンティティ

    Returns void

modified

  • modified(_isBubbling?: boolean): void
  • このエンティティに対する変更をエンジンに通知する。

    このメソッドの呼び出し後、 this に対する変更が各 Renderer の描画に反映される。 ただし逆は真ではない。すなわち、再描画は他の要因によって行われることもある。 ゲーム開発者は、このメソッドを呼び出していないことをもって再描画が行われていないことを仮定してはならない。

    本メソッドは、このオブジェクトの Object2D 由来のプロパティ (x, y, angle など) を変更した場合にも呼びだす必要がある。 本メソッドは、描画キャッシュの無効化処理を含まない。描画キャッシュを持つエンティティは、このメソッドとは別に invalidate() を提供している。 描画キャッシュの無効化も必要な場合は、このメソッドではなくそちらを呼び出す必要がある。

    Parameters

    • Optional _isBubbling: boolean

    Returns void

moveBy

  • moveBy(x: number, y: number): void
  • オブジェクトを相対的に移動する。 このメソッドは xy を同時に加算するためのユーティリティメソッドである。 ECamera2D においてこのメソッドを呼び出した場合、 modified() を呼び出す必要がある。

    Parameters

    • x: number

      X座標に加算する値

    • y: number

      Y座標に加算する値

    Returns void

moveTo

  • moveTo(x: number, y: number): void
  • moveTo(obj: CommonOffset): void
  • オブジェクトを移動する。 このメソッドは xy を同時に設定するためのユーティリティメソッドである。 ECamera2D においてこのメソッドを呼び出した場合、 modified() を呼び出す必要がある。

    Parameters

    • x: number

      X座標

    • y: number

      Y座標

    Returns void

  • オブジェクトを移動する。 このメソッドは xy を同時に設定するためのユーティリティメソッドである。 ECamera2D においてこのメソッドを呼び出した場合、 modified() を呼び出す必要がある。

    Parameters

    Returns void

remove

  • remove(e?: E): void
  • 子を削除する。

    ethis の子でない場合、 AssertionError がthrowされる。 e === undefined であり親がない場合、 AssertionError がthrowされる。

    Parameters

    • Optional e: E

      削除する子エンティティ。省略された場合、自身を親から削除する

    Returns void

render

  • 自分自身と子孫の内容を描画する。

    このメソッドは、 Renderer#draw() からエンティティのツリー構造をトラバースする過程で暗黙に呼び出される。 通常、ゲーム開発者がこのメソッドを呼び出す必要はない。

    Parameters

    • renderer: Renderer

      描画先に対するRenderer

    • Optional camera: Camera

      対象のカメラ。省略された場合、undefined

    Returns void

renderSelf

  • Parameters

    Returns boolean

resizeBy

  • resizeBy(width: number, height: number): void
  • オブジェクトのサイズを相対的に変更する。 このメソッドは widthheight を同時に加算するためのユーティリティメソッドである。 ECamera2D においてこのメソッドを呼び出した場合、 modified() を呼び出す必要がある。

    Parameters

    • width: number

      加算する幅

    • height: number

      加算する高さ

    Returns void

resizeTo

  • resizeTo(width: number, height: number): void
  • resizeTo(size: CommonSize): void
  • オブジェクトのサイズを設定する。 このメソッドは widthheight を同時に設定するためのユーティリティメソッドである。 ECamera2D においてこのメソッドを呼び出した場合、 modified() を呼び出す必要がある。

    Parameters

    • width: number

    • height: number

      高さ

    Returns void

  • オブジェクトのサイズを設定する。 このメソッドは widthheight を同時に設定するためのユーティリティメソッドである。 ECamera2D においてこのメソッドを呼び出した場合、 modified() を呼び出す必要がある。

    Parameters

    Returns void

scale

  • scale(scale: number): void
  • オブジェクトの拡大率を設定する。 このメソッドは scaleXscaleY に同じ値を同時に設定するためのユーティリティメソッドである。 ECamera2D においてこのメソッドを呼び出した場合、 modified() を呼び出す必要がある。

    Parameters

    • scale: number

      拡大率

    Returns void

shouldFindChildrenByPoint

  • このメソッドは、 E#findPointSourceByPoint() 内で子孫の探索をスキップすべきか判断するために呼ばれる。 通常、子孫の描画方法をカスタマイズする一部のサブクラスにおいて、与えられた座標に対する子孫の探索を制御する場合に利用する。 ゲーム開発者がこのメソッドを呼び出す必要はない。

    戻り値は、子孫の探索をスキップすべきであれば偽、でなければ真である。

    Parameters

    Returns boolean

show

  • show(): void
  • このEを表示状態にする。

    this.hide() によって非表示状態にされたエンティティを表示状態に戻す。 生成直後のエンティティは表示状態であり、 hide() を呼び出さない限りこのメソッドを呼び出す必要はない。

    Returns void

visible

  • visible(): boolean
  • このEが表示状態であるかどうかを返す。

    Returns boolean

Generated using TypeDoc