コメント

このコメントは、【トピック】CODE ON RMAKEでの画像の動かし方へのコメントです。

コメントの内容

Zararu128x128 mini dycoon(投稿日:2014/01/15 21:01/15/14)
Rmakeのご利用ありがとうございます。
難しい範囲の話になるかと思いますが
ちょっと説明してみようと思います。

aoihikawaさんが説明しているとおり
  commands.move_to 100, 50, 20

のような書き方をした場合
motionやanimationの引数はスプライトテンプレートが
定義された時の値が使用されます。

実行時に値を変更したい場合は、
たとえば以下のように書きます。
...

x = 10
y = 10

...

  commands.move_to(lambda do |s| x end, 
    lambda do |s| y end, 20)

...


コードの全体はこちらで確認できます。
https://core.rmake.jp/projects/184

リファレンスでもこちらに少し書いてあります。
https://core.rmake.jp/doc/reference/rmake_common_sprite_template/motion_proxy#3_5

さらに少し説明しますと

move_toなどのcommand_list用のメソッドは
引数に処理(lambdaメソッドの返り値などのProcオブジェクト)を渡すことができます。
処理を渡した場合、処理の実行はモーションなどの処理がおこなわれているときで、
その返り値(処理の最後に書いた値を評価したもの(xの中身など))をもとに
command_listを実行します。
この場合だと変数xの座標の位置に移動するようになります。

ご参考になれば幸いです。

コメントの内容(一番最初の投稿)

Zararu128x128 mini dycoon(投稿日:2014/01/15 21:01/15/14)
Rmakeのご利用ありがとうございます。
難しい範囲の話になるかと思いますが
ちょっと説明してみようと思います。

aoihikawaさんが説明しているとおり
  commands.move_to 100, 50, 20

のような書き方をした場合
motionやanimationの引数はスプライトテンプレートが
定義された時の値が使用されます。

実行時に値を変更したい場合は、
たとえば以下のように書きます。
...

x = 10
y = 10

...

  commands.move_to(lambda do |s| x end, 
    lambda do |s| y end, 20)

...


コードの全体はこちらで確認できます。
https://core.rmake.jp/projects/184

リファレンスでもこちらに少し書いてあります。
https://core.rmake.jp/doc/reference/rmake_common_sprite_template/motion_proxy#3_5

さらに少し説明しますと

move_toなどのcommand_list用のメソッドは
引数に処理(lambdaメソッドの返り値などのProcオブジェクト)を渡すことができます。
処理を渡した場合、処理の実行はモーションなどの処理がおこなわれているときで、
その返り値(処理の最後に書いた値を評価したもの(xの中身など))をもとに
command_listを実行します。
この場合だと変数xの座標の位置に移動するようになります。

ご参考になれば幸いです。