Akashic Engine
    Preparing search index...

    Class FrameSprite

    フレームとタイマーによるアニメーション機構を持つ Sprite

    このクラスは、コンストラクタで渡された画像を、 幅 srcWidth, 高さ srcHeight 単位で区切られた小さな画像(以下、画像片)の集まりであると解釈する。 各画像片は、左上から順に 0 から始まるインデックスで参照される。

    ゲーム開発者は、このインデックスからなる配列を FrameSprite#frames に設定する。 FrameSprite は、 frames に指定されたインデックス(が表す画像片)を順番に描画することでアニメーションを実現する。 アニメーションは interval ミリ秒ごとに進み、 frames の内容をループする。

    このクラスにおける srcWidth, srcHeight の扱いは、親クラスである Sprite とは異なっていることに注意。

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    anchorX: null | number

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

    • アンカーとして設定した箇所がこのオブジェクトの基点 (位置、拡縮・回転の基点) となる。
    • 単位は相対値 (左上端が (0, 0) 中央が (0.5, 0,5) 右下端が (1,1) ) である。 初期値は 0 である。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

    NOTE: anchorX または anchorY のどちらを明示的に null に指定した場合、 このオブジェクトのアンカーは前バージョン(v2.x.x 以前)のデフォルトの挙動 (位置 x, y は左上端を基準に、拡大・縮小・回転の基点は中央を基準に決定) と同様になる。 これは前バージョンとの後方互換性のために存在する。

    anchorY: null | number

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

    • アンカーとして設定した箇所がこのオブジェクトの基点 (位置、拡縮・回転の基点) となる。
    • 単位は相対値 (左上端が (0, 0) 中央が (0.5, 0,5) 右下端が (1,1) ) である。 初期値は 0 である。 ECamera2D においてこの値を変更した場合、 modified() を呼び出す必要がある。

    NOTE: anchorX または anchorY のどちらを明示的に null に指定した場合、 このオブジェクトのアンカーは前バージョン(v2.x.x 以前)のデフォルトの挙動 (位置 x, y は左上端を基準に、拡大・縮小・回転の基点は中央を基準に決定) と同様になる。 これは前バージョンとの後方互換性のために存在する。

    angle: number

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

    children: undefined | E[]

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

    compositeOperation: undefined | CompositeOperationString | CompositeOperation

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

    finished: Trigger<void>

    アニメーション終了時にfireされるTrigger。 本Triggerは loop: false の場合にのみfireされる。

    非推奨である。将来的に削除される。代わりに onFinish を利用すること。

    frameNumber: number

    現在表示されている画像片のインデックス。

    start() 呼び出しによりタイマーで自動的に書き換えられていくが、ゲーム開発者が明示的に値を設定してもよい。 初期値は 0 である。 この値を変更した場合、 this.modified() を呼び出す必要がある。

    frames: number[]

    アニメーションの内容。

    アニメーションの各フレームでの表示内容を指定するインデックスの配列を指定する。初期値は [0] である。 インデックスは、コンストラクタに渡された画像を幅 srcWidth, 高さ srcHeight 単位の小さな画像(画像片)の集まりであるとみなして、 各画像片を特定する値である。左上の画像片を 0, その右隣の画像片を 1 として左上から右下に順に割り振られる。

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

    height: number

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

    id: number

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

    interval: undefined | number

    アニメーションの更新頻度(ミリ秒)。 指定しなかった場合、 start() 時にFPSの逆数に設定される。(つまり、1フレームごとに画像が切り替わっていく) この値を変更した場合、反映には this.start() を呼び出す必要がある。

    local: boolean

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

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

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

    loop: boolean

    アニメーションをループ再生させるか否か。 初期値は true である。

    onFinish: Trigger<void>

    アニメーション終了時にfireされるTrigger。 本Triggerは loop: false の場合にのみfireされる。

    opacity: number

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

    parent: undefined | Scene | E

    親。

    scaleX: number

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

    scaleY: number

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

    scene: Scene

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

    shaderProgram: undefined | null | ShaderProgram

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

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

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

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

    描画する Surface または ImageAssetsrcXsrcYsrcWidthsrcHeight の作る矩形がこの画像の範囲外を示す場合、描画結果は保証されない。 この値を変更した場合、 this.invalidate() を呼び出す必要がある。

    srcHeight: number

    surface の描画対象部分の高さ。 描画はこの値を this.height に拡大または縮小する形で行われる。 この値を変更した場合、 this.invalidate() を呼び出す必要がある。

    srcWidth: number

    surface の描画対象部分の幅。 描画はこの値を this.width に拡大または縮小する形で行われる。 この値を変更した場合、 this.invalidate() を呼び出す必要がある。

    srcX: number

    surface の描画対象部分の左端。 この値を変更した場合、 this.invalidate() を呼び出す必要がある。

    srcY: number

    surface の描画対象部分の上端。 この値を変更した場合、 this.invalidate() を呼び出す必要がある。

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

    tag: any

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

    width: number

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

    x: number

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

    y: number

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

    Accessors

    • get onUpdate(): Trigger<void>

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

      Returns Trigger<void>

    • get touchable(): boolean

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

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

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

      Returns boolean

    • set touchable(v: boolean): void

      Parameters

      • v: boolean

      Returns void

    • get update(): Trigger<void>

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

      Returns Trigger<void>

      非推奨である。将来的に削除される。代わりに onUpdate を利用すること。

    Methods

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

      Parameters

      • x: number
      • y: number

      Returns void

    • 子を追加する。

      Parameters

      • e: E

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

      Returns void

    • このエンティティを破棄する。 デフォルトでは利用している Surface の破棄は行わない点に注意。

      Parameters

      • OptionaldestroySurface: boolean

        trueを指定した場合、このエンティティが抱える Surface も合わせて破棄する

      Returns void

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

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

      • このエンティティ(this) またはその子孫である
      • E#touchable が真である

      Parameters

      • point: CommonOffset

        対象の座標

      • Optionalm: Matrix

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

      • Optionalforce: boolean

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

      Returns undefined | PointSource

    • このEを非表示状態にする。

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

      Returns void

    • 子を挿入する。

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

      Parameters

      • e: E

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

      • target: undefined | E

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

      Returns void

    • このエンティティの描画キャッシュ無効化をエンジンに通知する。 このメソッドを呼び出し後、描画キャッシュの再構築が行われ、各 Renderer に描画内容の変更が反映される。

      Returns void

    • このエンティティに対する変更をエンジンに通知する。詳細は E#modified() のドキュメントを参照。

      Parameters

      • OptionalisBubbling: boolean

      Returns void

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

      Parameters

      • x: number

        X座標に加算する値

      • y: number

        Y座標に加算する値

      Returns void

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

      Parameters

      • x: number

        X座標

      • y: number

        Y座標

      Returns void

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

      Parameters

      Returns void

    • 子を削除する。

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

      Parameters

      • Optionale: E

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

      Returns void

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

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

      Parameters

      • renderer: Renderer

        描画先に対するRenderer

      • Optionalcamera: Camera

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

      Returns void

    • このエンティティ自身の描画を行う。 このメソッドはエンジンから暗黙に呼び出され、ゲーム開発者が呼び出す必要はない。

      Parameters

      Returns boolean

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

      Parameters

      • width: number

        加算する幅

      • height: number

        加算する高さ

      Returns void

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

      Parameters

      • width: number

      • height: number

        高さ

      Returns void

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

      Parameters

      Returns void

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

      Parameters

      • scale: number

        拡大率

      Returns void

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

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

      Parameters

      • _point: CommonOffset

        このエンティティ(this)の位置を基準とした相対座標

      Returns boolean

    • このEを表示状態にする。

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

      Returns void

    • Sprite から FrameSprite を作成する。

      Parameters

      • sprite: Sprite

        画像として使うSprite

      • Optionalwidth: number

        作成されるエンティティの高さ。省略された場合、 sprite.width

      • Optionalheight: number

        作成されるエンティティの高さ。省略された場合、 sprite.height

      Returns FrameSprite