Class BaseRunner<TT, NA>

BaseRunner Corutionの機能を使って対象物のパラメータを変化させるためのクラス

Type Parameters

  • TT = any

  • NA extends string = string

Hierarchy

Constructors

  • Type Parameters

    • TT = any

    • NA extends string = string

    Parameters

    • Optional target: TT

    Returns BaseRunner<TT, NA>

Properties

_generator?: Generator<unknown, any, unknown>
_isAwake: boolean = true
_loop: boolean = false
_taskList: CoroutineTask[] = []
target?: TT

Runner対象オブジェクト

Accessors

  • get dead(): boolean
  • [jp] 稼働中の内部ジェネレータがあるかどうかを返す

    [en] Returns true when inner-generator doesn't exists

    Returns boolean

  • get isAwake(): boolean
  • [jp] 稼働状態を返す。 falseの際はstepを実行しても進まない pause/resumeなどで更新

    [en] Return isAwake

    Returns boolean

Methods

  • Adds RunnerAction

    Example

    const runner = new Runner();

    // Sample action (this: Runner)
    const gotoAction = function* (x, duration) {
    let count = 0;
    const progressUnit = (x - this.target.x) / duration;
    while (count < duration) {
    this.target.x += progressUnit;
    yield count++;
    }
    };

    // 1. simple pattern
    runner.addAction(gotoAction, 200, 120);

    // 2. createAction pattern
    function createGotoAction(x, duration) {
    return function() {
    return gotoAction.bind(this)(x, duration)
    }
    }
    // alternative: 直接引数を埋め込んだRunnerActionを返す
    function createGotoActionDirect(x, duration) {
    return function*() {
    let count = 0;
    const progressUnit = (x - this.target.x) / duration;
    while (count < duration) {
    this.target.x += progressUnit;
    yield count++;
    }
    }
    }
    runner.addAction(createGotoAction(200, 120));
    runner.addAction(createGotoActionDirect(200, 120));

    // 3. Set with iife
    runner.addAction(
    (()=> {
    const x = 200;
    const duration = 120;
    return function*() {
    let count = 0;
    const progressUnit = (x - this.target.x) / duration;
    while (count < duration) {
    this.target.x += progressUnit;
    yield count++;
    }
    }
    })()
    );

    Parameters

    • action: BaseRunnerAction<TT>

      GeneratorFunctionでthisをRunnerにしたもの、文字列指定で予め登録したAction実行可能?

    • Rest ...args: any

      可変長でRunnerAction実行時の引数パラメータを設定(文字列指定で有効、それ以外は使いずらいかも?)

    Returns BaseRunner<TT, NA>

  • (WIP, maybe removed)

    [en] Add action with pre-registered action name

    [jp] 予め登録したアクション名でアクションを追加

    Example

    import {ActionDictionary,BaseRunner} from "pgul"

    ActionDictionary.register("goto", function* (x, duration) {
    let count = 0;
    const progressUnit = (x - this.target.x) / duration;
    while (count < duration) {
    this.target.x += progressUnit;
    yield count++;
    }
    });

    // Load action
    const runner = new BaseRunner<any, "goto">();
    runner.addActionByName("goto", 200, 120);

    Returns

    Parameters

    • actionName: NA
    • Rest ...args: any

      args for runnerAction

    Returns BaseRunner<TT, NA>

  • [jp] タスクを追加

    [en] Add coroutine task

    Returns

    this

    Parameters

    • taskObj: CoroutineTask

      func<*function>とarguments<any[]>をもったオブジェクト

    • resetAfterAdding: boolean = false

      追加後に内部Generatorをリセットするかどうか

    Returns BaseRunner<TT, NA>

  • [jp] 内部Generatorをクリア(コルーチン処理消去)

    [en] Clear current running generator.

    Returns

    this

    Returns BaseRunner<TT, NA>

  • [jp] 処理をポーズする(step処理をスキップするようにする)

    [en] Pause coroutine stepping.

    Returns

    this

    Returns BaseRunner<TT, NA>

  • [jp] taskリストからジェネレーターをリセット

    [en] Reset

    Returns

    this

    Returns BaseRunner<TT, NA>

  • [jp] ポーズ中の処理を再開

    [en] Resume coroutine stepping.

    Returns

    this

    Returns BaseRunner<TT, NA>

  • [jp] ループを設定

    [en] Whether to reset generator after it is "done".

    Returns

    this

    Parameters

    • flag: boolean = true

    Returns BaseRunner<TT, NA>

  • Parameters

    • target: TT

    Returns BaseRunner<TT, NA>

  • [jp] step可能にする 内部ジェネレーターリセットも兼ねる

    [en] Reset and enable coroutine stepping

    Returns

    this

    Returns BaseRunner<TT, NA>

  • [jp] ルーチン処理を進める ループが有効な場合はジェネレーターをリセットする

    [en] Step inner Generator

    Returns

    稼働状態であればnext結果を返す

    Returns void | IteratorResult<any, any>

  • [jp] taskリストをジェネレーターオブジェクトに変換

    [en] convertTaskListToGenarator

    Returns

    Converted Generator

    Parameters

    Returns Generator<unknown, void, unknown>

Generated using TypeDoc