1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

enchant.jsとtmlib.jsを使ったゲーム作成フレームワーク「enforce」waitjob()について

Last updated at Posted at 2015-01-16

@waitjob() について

このゲームフレームワークの重要な機能として、

の2つがありますが、この「@waitjob()」の意味が分からないとよく言われるので解説しておきます。

例1

switch @_processnumber
    when 0
        @xs = 4
        @waitjob(1)
    when 1
        @xs = 0
        @waitjob(1)
    when 2
        @xs = -4
        @waitjob(1)
    when 3
        @xs = 0

この例で説明していきます。
まず「when 0」で「@xs」に4が代入されます。
この処理でこのキャラクターは右へ4ピクセルづつ毎フレーム移動します。
この「4ピクセルづつ移動」をどれくらいの時間実行するのかを指定するのが「@waitjob(n)」です。
@waitjob(1)」とすることによって、「@xs = 4」の状態のまま1秒間処理されます。
もし、「@xs = 4」の下に「@ys = 4」も書いておいた場合、1秒間斜め右下へ移動し続けます。
そして、1秒経過すると「@_processnumber」が「@waitjob()」を実行した時の数字からインクリメントされた値になるので、次の「when 1」が実行されます。
when 1」では、「xs = 0」として「@waitjob(1)」となっているので、1秒間静止したままになります。
すると1秒後に「when 2」が実行されるので、今度は左へ1秒間移動する………という流れになります。
これが、「@waitjob()」の動きになります。

@nextjob()」は単純に、「@_processnumber」をインクリメントするメソッドになります。
実行すると強制的にswitchの次のwhenが実行されるようになります。

この、behavior内で実行される処理を制御する「@_processnumber」は、

以外で値が変化することはありません。


enforceチュートリアル一覧

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?