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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
はね

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

#1

投稿記事 by はね » 15年前

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

Dixq (管理人)

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

#2

投稿記事 by Dixq (管理人) » 15年前

中心に向けて常に移動させればいいんじゃないでしょうか?
例えば左に引っ張るようにするなら

ch.x--;

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

Justy

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

#3

投稿記事 by Justy » 15年前

 個人的にはXXXのようにと書くならついでに動画も紹介してくれると
たすかるのですが。


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

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

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

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

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

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

Dixq (管理人)

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

#4

投稿記事 by Dixq (管理人) » 15年前

Justyさん、仰っている弾幕はこちらだと思います。

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

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

Justy

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

#5

投稿記事 by Justy » 15年前


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

 ありがとうございます。

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

はね

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

#6

投稿記事 by はね » 15年前

具体的な計算式はどういったものなんでしょうか?

はね

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

#7

投稿記事 by はね » 15年前

よろしくお願いします

閉鎖

“C言語何でも質問掲示板” へ戻る