龍神録50章を改造してます。
地霊殿のラスト弾幕のように
弾幕中、自機を画面の中心に少しずつ吸い込ます方法を
実装してみたいのですが、これはどういう計算式で
中心に引っ張られるのか分からなくて困ってます。
誰か分かる方がいたら教えてください・・
自機を画面の中心に吸い込ます方法
Re:自機を画面の中心に吸い込ます方法
中心に向けて常に移動させればいいんじゃないでしょうか?
例えば左に引っ張るようにするなら
ch.x--;
常に上の計算をすれば引っ張られるように感じると思います。
中心に向かわせるならatan2関数で角度計算してそれに合わせてsin,cosでx,y成分を引っ張ればどうでしょう?
例えば左に引っ張るようにするなら
ch.x--;
常に上の計算をすれば引っ張られるように感じると思います。
中心に向かわせるならatan2関数で角度計算してそれに合わせてsin,cosでx,y成分を引っ張ればどうでしょう?
Re:自機を画面の中心に吸い込ます方法
個人的にはXXXのようにと書くならついでに動画も紹介してくれると
たすかるのですが。
察するに一応自由に操作できるけど、中央に何かあって自機がそちら方向に
移動するよう力が働いている、といったところでしょうか?
Dixqさんの方法とほぼ同じではありますが、単純に自機から中心へのベクトルを出して
1フレームに移動させたい長さに調節、それをプレイヤーの位置に足す、
を毎フレーム行うでいいと思います。
長さの調節は一度そのベクトルを単位ベクトル化してから、移動距離の係数を
掛けると楽です。
プレイヤーを P、中心を C、そのフレームでの吸い寄せられる距離を Mとすると
[color=#d0d0ff" face="monospace]
V = C - P; // 自機から中心へのベクトル
N = V / Length(V); // 単位ベクトル化
P += N * M;
[/color]
これを毎フレームを行えば吸い寄せられるように見えるはずです。
等速で吸い寄せられるなら Mは一定値となります。
ただ、「吸い込む」とあるので距離に応じて吸引力を変えたり、
加速度とかも入れないと同じにはならないかもしれませんね。
たすかるのですが。
察するに一応自由に操作できるけど、中央に何かあって自機がそちら方向に
移動するよう力が働いている、といったところでしょうか?
Dixqさんの方法とほぼ同じではありますが、単純に自機から中心へのベクトルを出して
1フレームに移動させたい長さに調節、それをプレイヤーの位置に足す、
を毎フレーム行うでいいと思います。
長さの調節は一度そのベクトルを単位ベクトル化してから、移動距離の係数を
掛けると楽です。
プレイヤーを P、中心を C、そのフレームでの吸い寄せられる距離を Mとすると
[color=#d0d0ff" face="monospace]
V = C - P; // 自機から中心へのベクトル
N = V / Length(V); // 単位ベクトル化
P += N * M;
[/color]
これを毎フレームを行えば吸い寄せられるように見えるはずです。
等速で吸い寄せられるなら Mは一定値となります。
ただ、「吸い込む」とあるので距離に応じて吸引力を変えたり、
加速度とかも入れないと同じにはならないかもしれませんね。
Re:自機を画面の中心に吸い込ます方法
Justyさん、仰っている弾幕はこちらだと思います。
[nico]http://www.nicovideo.jp/watch/sm6574256[/nico]
(7:56~)
見ると、そこまで難しい計算はしておらず、単純に等速で中央に吸い寄せられているように思います。
まぁこの弾幕からしてあまり真中によることも出来ませんしね^^;
[nico]http://www.nicovideo.jp/watch/sm6574256[/nico]
(7:56~)
見ると、そこまで難しい計算はしておらず、単純に等速で中央に吸い寄せられているように思います。
まぁこの弾幕からしてあまり真中によることも出来ませんしね^^;
Re:自機を画面の中心に吸い込ます方法
> 仰っている弾幕はこちらだと思います
ありがとうございます。
なるほど、ブラックホールのような重力源があるのかなとか、
ひょっとして渦巻いているのかとか想像していましたが、
ベルトコンベア的な等速だったんですね。。