【講座?】CoRを触ってみる09~モーション編~【自分用メモ?】

投稿者:Material 185033 3 mini 光楼(114) 投稿日:2017/03/05 14:25

【講座?】CoRを触ってみる08~テキストスプライト編~【自分用メモ?】←前回

NintendoSwitchが欲しい。その前に今遊んでるゲームを終わらせなければ……。

#このブログの情報は2017年3月5日現在のものです。今後変更になる可能性があります。

モーションとは

スプライトの位置を移動させたりする事。動きですよ動き。

下準備

今回は前回の続きからです。
スプライトを用意するのが面倒なのでテキストスプライトで解説しようと思います。
大丈夫、スプライトとそんなに変わんないから!
てなわけで↓のコードを使っていきます。
scene 'start' do #シーンstart
  #変数定義
  text_sprite = nil

  preload do #素材読込み
  end

  create do #シーン初期化
    text_sprite = put_text 'TestText' do
     position 200, 50
     text 'テストテスト'
    end
  end

  update do #メインループ
  end

  render do #描画
  end
end

#シーンスタート
start_scene "start"

#テキストスプライト定義
text 'TestText' do
  origin :center
  font_size 30
  color '#b0ff5a'
end

定義

動きを付けたいスプライトを定義しているところに書きます。
今回はテキストスプライトを定義しているところに書きます。
一番下のcolorendの間にでも書きましょう。
motion '適当なモーション名' do
end

メソッド

さて、この中に色々書いていくのですが、使えるメソッドは3つです。

  • toメソッド
現在位置から指定した位置へ移動させるのに使います。
  • fromメソッド
指定位置から現在位置へ移動させるのに使います。
指定した位置に瞬間移動して元の場所に戻って来ます。

上記2つのメソッドの使い方は以下のような感じ。
to params: {x: 100, y: '+300', alpha: 0.8}, duration: 1500
from params: {x: '+500', y: 600, alpha: 0.0}, duration: 1000

    • params
モーションに渡す引数です。座標とかを決めます。
x:100とすればX座標が100の位置を指定できます。Y座標も同様。
x:'+500'とすれば相対的な位置を指定できます。これは現在のX座標+500の位置を指定しています。

alphaが何かって?
調べてみた結果、不透明度っぽいです!
こいつの値をいじればスプライトをスケスケに出来ます!やったね!
0で透明、1で不透明です。
こっちも相対的に指定することが出来ます。

ちなみにparamsでは必ず3つ書かなくてはいけないわけではありません。
別に1つだけでも良いんです。
to params: {y: 400}, duration: 1000
to params: {x: '-50'}, duration: 500

    • duration
モーションにかける時間(ミリ秒)です。
1000で1秒です。

  • loopメソッド
モーションを繰り返すかどうかを設定します。
loop(true)


定義は以上、私はこんな感じにしてみました。
motion 'Up-Down' do
  to params: {y: '+400'}, duration: 1000
  to params: {alpha: '-0.9'}, duration: 2000
  to params: {y: '-400', alpha: 0.5}, duration: 1500
  loop(true)
end

モーション開始

モーションを開始したいところに書きます。
今回はcreate内の、text_sprite=put_text'TestText'do ~ endの下に書きましょう。
ようはcreateの一番下。テキストスプライトの配置が終わった後。
モーションさせるスプライトの変数.start_motion 'モーション名'


モーションの解説は以上です。
適当にあそんでみるのもいいかもしれません。
それではまた次回で会いましょう!

毎度恒例全体像だぞ!
scene 'start' do #シーンstart
  #変数定義
  text_sprite = nil

  create do #シーン初期化
    text_sprite = put_text 'TestText' do
     position 200, 50
     text 'テストテスト'
    end

    #モーション開始
    text_sprite.start_motion 'Up-Down'
  end

  update do #メインループ
  end

  render do #描画
  end
end

#シーンスタート
start_scene "start"

#テキストスプライト定義
text 'TestText' do
  origin :center
  font_size 30
  color '#b0ff5a'

  motion 'Up-Down' do
    to params: {y: '+400'}, duration: 1000
    to params: {alpha: '-0.9'}, duration: 2000
    to params: {y: '-400', alpha: 0.5}, duration: 1500
    loop(true)
  end
end

次回→【講座?】CoRを触ってみる10~配列編~【自分用メモ?】

コメントする

コメントするには、ログインする必要があります。

コメント一覧

            mini mosmoss(投稿日:2017/03/05 14:52, 履歴)
お疲れ様です
直線移動が書きやすくなったのと、ループができるのと、
スケスケになる!のが新しいですね
Material 185033 3 mini 光楼(114)(投稿日:2017/03/07 19:26, 履歴)
そうなんです!
特にスケスケに出来るのはRmakeの機能では出来なかったので嬉しいですね。
            mini mosmoss(投稿日:2017/04/22 18:13, 履歴)
params:の書き方が他のものに比べると少し複雑ですね
:がついてるもの時々ありますが何か法則があるんでしょうか