ページ 11

自機を画面の中心に吸い込ます方法

Posted: 2009年12月12日(土) 10:39
by はね
龍神録50章を改造してます。
地霊殿のラスト弾幕のように
弾幕中、自機を画面の中心に少しずつ吸い込ます方法を
実装してみたいのですが、これはどういう計算式で
中心に引っ張られるのか分からなくて困ってます。
誰か分かる方がいたら教えてください・・

Re:自機を画面の中心に吸い込ます方法

Posted: 2009年12月12日(土) 13:33
by Dixq (管理人)
中心に向けて常に移動させればいいんじゃないでしょうか?
例えば左に引っ張るようにするなら

ch.x--;

常に上の計算をすれば引っ張られるように感じると思います。
中心に向かわせるならatan2関数で角度計算してそれに合わせてsin,cosでx,y成分を引っ張ればどうでしょう?

Re:自機を画面の中心に吸い込ます方法

Posted: 2009年12月12日(土) 14:09
by Justy
 個人的にはXXXのようにと書くならついでに動画も紹介してくれると
たすかるのですが。


 察するに一応自由に操作できるけど、中央に何かあって自機がそちら方向に
移動するよう力が働いている、といったところでしょうか?

 Dixqさんの方法とほぼ同じではありますが、単純に自機から中心へのベクトルを出して
1フレームに移動させたい長さに調節、それをプレイヤーの位置に足す、
を毎フレーム行うでいいと思います。

 長さの調節は一度そのベクトルを単位ベクトル化してから、移動距離の係数を
掛けると楽です。

 プレイヤーを P、中心を C、そのフレームでの吸い寄せられる距離を Mとすると
[color=#d0d0ff" face="monospace]
V = C - P; // 自機から中心へのベクトル
N = V / Length(V); // 単位ベクトル化
P += N * M;
[/color]

これを毎フレームを行えば吸い寄せられるように見えるはずです。
 等速で吸い寄せられるなら Mは一定値となります。

 ただ、「吸い込む」とあるので距離に応じて吸引力を変えたり、
加速度とかも入れないと同じにはならないかもしれませんね。

Re:自機を画面の中心に吸い込ます方法

Posted: 2009年12月12日(土) 15:57
by Dixq (管理人)
Justyさん、仰っている弾幕はこちらだと思います。

[nico]http://www.nicovideo.jp/watch/sm6574256[/nico]
(7:56~)

見ると、そこまで難しい計算はしておらず、単純に等速で中央に吸い寄せられているように思います。
まぁこの弾幕からしてあまり真中によることも出来ませんしね^^;

Re:自機を画面の中心に吸い込ます方法

Posted: 2009年12月12日(土) 22:10
by Justy

> 仰っている弾幕はこちらだと思います

 ありがとうございます。

 なるほど、ブラックホールのような重力源があるのかなとか、
ひょっとして渦巻いているのかとか想像していましたが、
ベルトコンベア的な等速だったんですね。。

Re:自機を画面の中心に吸い込ます方法

Posted: 2009年12月13日(日) 15:25
by はね
具体的な計算式はどういったものなんでしょうか?

Re:自機を画面の中心に吸い込ます方法

Posted: 2009年12月16日(水) 19:11
by はね
よろしくお願いします