AnimationProxyモジュール


AnimationProxyは、アニメーションを設定時にコマンドを定義するメソッドを定義したモジュールです。

アニメーションは、スプライトの表示を指定します。
RPGなどにみられるキャラクタの足踏み、シューティングの爆発アニメーションなどを指定します。

サンプル

sprite_template :human do |st|
  st.src_size 32, 32
  # 中略

  st.animation :default do |commands|
    # AnimationProxyはこのcommandsが持っているメソッドを定義しています
    commands.loop true
    commands.copy_rect :frame => 16, :src => [0, 0]
  end
end


実行時に評価される値の指定
animationを指定する関数の引数は定義時に評価されるため、
実行時に状態に応じて処理を変えるということはそのままだとできない。
AnimationProxyのメソッドの引数にProcオブジェクト(Proc.newやlambdaの返り値)が
渡されてきたときは、実行時にそのProcオブジェクトが実行される。
たとえば以下の処理ではランダムなアニメーションが実行される。
commands.copy_rect :frame => 16, :src => [lambda do |s|
    rand(8) # ランダムなアニメーション番号
  end, 1]

  • Procオブジェクトのブロックの第1引数はRmakeCommonSpriteのインスタンス
  • Procオブジェクトのブロック返り値がAnimationProxyのメソッドの引数に渡されます

loopメソッド


アニメーションがループするかどうかを設定します。

# ループを有効にする
commands.loop true

# ループを無効にする
commands.loop false


  • 第1引数:ループを有効にするかどうか(true/false)

copy_rectメソッド


スプライトに設定されたテクスチャから指定した矩形を画面上にコピーします。

# 16フレームの間、ソースの1,1の位置から矩形を表示します。
commands.copy_rect :frame => 16, :src => [1, 1]


  • 引数
    • frame:表示するフレーム数
    • src:テクスチャ上の位置

スプライトテンプレートのsrc_sizeが32,48、srcが[1,2]の場合、srcからテクスチャ上の座標を計算する方法は以下の通りです。

  • 32*1=32
  • 48*2=96
  • 矩形:(x, y, width, height)=(32, 96, 32, 48)

src_sizeメソッド


スプライトテンプレートのテクスチャ上のサイズを設定します。

# スプライトテンプレートのテクスチャ上のサイズを(width, height)=(32,48)に設定する
commands.src_size 32, 48


  • 第1引数:幅(width)
  • 第2引数:高さ(height)

dest_sizeメソッド


スプライトテンプレートの画面上に表示されるサイズを設定します。

# スプライトテンプレートの画面上に表示されるサイズを設定する
commands.dest_size 32, 48


  • 第1引数:幅
  • 第2引数:高さ

center_offsetメソッド


スプライトの中心点を設定します。

# スプライトの中心点(16, 24)を設定する
commands.center_offset 16, 24


  • 第1引数:幅
  • 第2引数:高さ

change_animationメソッド


スプライトのアニメーションを設定します。
下向きアニメーションを横向きアニメーションに変更するなどで利用できるメソッドです。

# :walk_to_downアニメーションに変更する
commands.change_animation :walk_to_down


  • 第1引数:アニメーション名

wait_animationメソッド


現在設定されているアニメーションのすべての完了を待つメソッドです。

wait_animationの中にはcopy_rectのように完了まで数フレーム必要な命令があり、その完了を待ちます。

commands.wait_animation


wait_frameメソッド


指定したフレーム数分だけ、コマンドの実行を待つメソッドです。

# 10フレーム待つ
commands.wait_frame 10


  • 第1引数:待つフレーム数

proc_callメソッド


アニメーションをコマンドのリストではなく、プログラムで制御したい場合に使うメソッドです。
本モジュールで使うことができるメソッドで制御するよりも低速ですが、自由度が高いため複雑な制御をする場合に使うと良いでしょう。

commands.proc_call do |sprite|
  # ここにrubyコードを記述します
end

クラスリファレンストップに戻る

サンプル一覧

チュートリアル1 - ようこそ、Rmakeの世界へ

アニメーションとモーション
あたり判定の初歩、タップすると話すキャラ
あたり判定の応用、キャラクタ同士の衝突
弾を打つキャラクタ
ソースのロードとライブラリのロード

サンプルゲーム

サンプル - 脱出ゲーム
脱出ゲームのサンプルです。

サンプル - シューティング
弾幕シューティングゲームのサンプルです。

まじたいスリーマッチパズル
スリーマッチパズルゲームのサンプルです。

お知らせ

2014/03/04 ver. 0.1.39 を公開しました!
・0.1.36でWindowsで起動しない問題を修正しました
(Android版はバージョン番号のみの変更です。)

2014/03/04 ver. 0.1.36 を公開しました!
・アプリケーションアイコンを変更しました
・セーブ・ロードを繰り返すとアプリが強制終了する問題を修正しました
・他、重大なバグを修正しました

ダウンロードはこちらから。

2013/07/17 Code on Rmakeをα公開しました!