ニコ動でプチコン関係の動画を見ていたら、キャラが動く時にはねたり、回転したりの演出がよくされているので、BASICにその手の処理系があるのかな?と思って調べたらありました。
spanimという関数で、
SPANIM 0,"XY+",-600,100,100 SPANIM 0,"R",-120,360,0 SPANIM 0,"S",-300,8,8,1
のような演出をスプライトに定義できます。UnityでいうならiTweenみたいな処理です。
一つ目は、XY+は、相対移動で、-600は10秒(60fpsなので)かけて(+100,+100)って意味
2つ目は、2秒かけて360度回転
3つめは、5秒かけてx,yともに8倍サイズにする
以下にマニュアルがあります。
SPANIM|スプライトにアニメーションを設定 - プチコン.NET
検索して色々読んでみるとSPANIMは解りにくいという意見が多かったのですが、自分は使ってみたかったので、ちょっと似たような処理を作ってみているところです。
(検証用ってことで、プチコン標準スプライト画像を利用しています)
カーソルキーで右押すと、2秒かけてx軸に2f移動しながら、同時に360度回転
カーソルキーで左押すと、2秒かけてx軸に左に2f移動しながら、同時に-360度回転
実際はspanim内では変数やタイマーのセットをして、doTween()内で動かしてます。
void Update () { Vector2 Position = transform.position; Vector3 scale = transform.localScale; float dx = Input.GetAxis ("Horizontal"); if(dx>0) { if(scale.x<0) scale.x = -scale.x; spanim("XY+",2f, 2f,0f); spanim("R",2f, 360,0); } if(dx<0) { if(scale.x>0) scale.x = -scale.x; spanim("XY+",2f, -2f,0f); spanim("R",2f, -360,0); } transform.localScale = scale; doTween(); }
しかし、このへんの記事を見ると、unityに搭載されている機能を素直に使ったほうがいいかもな。
そのためのゲームエンジンだしね。せめてiTween使うとか。
tsubakit1.hateblo.jp
これって物理法則のシミュレーションにも使えそう
PointEffect2Dって中心への引力だから、向心力として惑星の周囲の周回ができるかも?
AreaEffect2Dは、電界とか磁界として表現できそう
Platform Effector2d ダイオードじゃんw もしくは半透膜
Buoyancyって浮力って意味らしい。この単語は初めて見た。