CODE ON RMAKEでの画像の動かし方(CoR質問掲示板)
投稿: ikosami
投稿:2014/01/14 13:12:14(最新:2014/01/16 21:19:16)
https://core.rmake.jp/projects/79
などで、いろいろ調べたのですが、
一マス一マス動かす感じの画像の動かし方が
よくわかりません・・・
一度、最初に指定した場所に動かすことはできるのですが、
(前に言われた気がしますが)変数で指定しても
最初に指定された場所にしか動かなかったりします・・・
動かないのが、ただの勘違いならいいのですが、
変数で指定して一マス一マスキャラを動かしたりする場合に
どうすればいいのか説明をお願いします。
スクリプトそのものは、既に上記リンク先などで
みているので、それを出されてもわかりません・・・
どなたか、詳しくわかる方
よろしくおねがいします。
ツイート
などで、いろいろ調べたのですが、
一マス一マス動かす感じの画像の動かし方が
よくわかりません・・・
一度、最初に指定した場所に動かすことはできるのですが、
(前に言われた気がしますが)変数で指定しても
最初に指定された場所にしか動かなかったりします・・・
動かないのが、ただの勘違いならいいのですが、
変数で指定して一マス一マスキャラを動かしたりする場合に
どうすればいいのか説明をお願いします。
スクリプトそのものは、既に上記リンク先などで
みているので、それを出されてもわかりません・・・
どなたか、詳しくわかる方
よろしくおねがいします。
コメントする
コメントするには、ログインする必要があります。
コメント一覧
RmakeCommonSpriteクラスの
set_positionメソッドで可能です
テンプレートを使用する方法は
初期通過時で内容が固定となりますので
コンストラクタ用として使用します
そのため、常時値を変更する必要がある場合は
イベントの発生時に直接メソッドを呼び出して
動作を指定します
set_positionメソッドで可能です
テンプレートを使用する方法は
初期通過時で内容が固定となりますので
コンストラクタ用として使用します
そのため、常時値を変更する必要がある場合は
イベントの発生時に直接メソッドを呼び出して
動作を指定します
できました!
ありがとうございます(^^)
ただ、とりかさんのRPGテンプレ実験(上記リンク)で
set_positionメソッドが一度も使われていないのに
動いているのが謎です・・・
ありがとうございます(^^)
ただ、とりかさんのRPGテンプレ実験(上記リンク)で
set_positionメソッドが一度も使われていないのに
動いているのが謎です・・・
とりかさんの例の場合、
RmakeCommonSpriteTemplateクラスの
motionメソッド内、
move_by_vで移動を実装していますね
座標の指定ではなく、
1回辺りの変化値で移動処理を行っているため
テンプレートの形で定義しても
正常に動作しています
RmakeCommonSpriteTemplateクラスの
motionメソッド内、
move_by_vで移動を実装していますね
座標の指定ではなく、
1回辺りの変化値で移動処理を行っているため
テンプレートの形で定義しても
正常に動作しています
メニュー
難しい範囲の話になるかと思いますが
ちょっと説明してみようと思います。
aoihikawaさんが説明しているとおり
のような書き方をした場合
motionやanimationの引数はスプライトテンプレートが
定義された時の値が使用されます。
実行時に値を変更したい場合は、
たとえば以下のように書きます。
コードの全体はこちらで確認できます。
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の座標の位置に移動するようになります。
ご参考になれば幸いです。
なんだか難しいですね(^^;)
テンプレートの内部にlambda関数を仕込むことで
常時変化する値をテンプレートにすることも可能
というところでしょうか(曖昧解釈
製作中ゲームの宣伝も兼ねて
http://blog.rmake.jp/ikosami/5268
に書きました。
lambdaも
proc_callやマウスイベントなどのブロックとかと同じで、
処理を関数の引数が評価されるタイミングと
違うタイミングで評価したい場合などに使うのですが、
rubyでは複数のブロックをメソッドの引数に渡せないようになっているため、
そのばあいlambdaなどの書き方をしたりします。