ページ 11

Tatuさんの作ったsinカーブ弾幕について

Posted: 2010年3月22日(月) 13:35
by ハル
Tatuさんにどうしても聞きたいことがあり、投稿させていただきました。

http://www.play21.jp/board/formz.cgi?ac ... &rln=49201
のsinカーブについてですが、
描画の際に角度が変わらず、米粒弾や矢印弾を撃った時
全ての弾が同じ向きを向いてしまいます。
目的は進行方向に弾を向かせたいのです。

一応、atan2を使って

double x=boss_shot.bullet.x;//座標を記録
double y=boss_shot.bullet.y;//座標を記録
boss_shot.bullet.x-=sin(boss_shot.bullet.angle)*PI2*cos(PI2/160*boss_shot.bullet.cnt);
boss_shot.bullet.y+=cos(boss_shot.bullet.angle)*PI2*cos(PI2/160*boss_shot.bullet.cnt);
boss_shot.bullet.graph_angle = atan2( boss_shot.bullet.y-y , boss_shot.bullet[i].x-x );
変化前と変化後の位置から描画角度を求めてみて、graph_angleを使って画像を描画させてみたのですが、
変わりませんでした…。

進行方向に向かせる方法はどうすればいいでしょうか?

Re:Tatuさんの作ったsinカーブ弾幕について

Posted: 2010年3月22日(月) 23:58
by Tatu
以前の弾幕から波を描く弾の向きを進行方向に向くように変えました。

以前は弾の持つ一定のspdとangleで動かし、
さらに弾幕関数内で波を描かせるためにずらしてましたが、

今回は弾幕関数内部のみで弾の軌道を計算させています。
弾のspdを0にし、cntが0のときの角度を記憶したのちに
その値とcntで軌道を計算させています。
その後、移動量に応じて角度を計算しています。

ハルさんのコードでは弾幕関数内でどのくらいずらしたかだけで
角度を計算させているのでもとの弾幕での弾の向きに対し
垂直な向きにしかならないはずです。

弾幕関数は長くなり、そのまま投稿することができなくなったので
次のレスで添付します。 画像

Re:Tatuさんの作ったsinカーブ弾幕について

Posted: 2010年3月23日(火) 00:02
by Tatu
弾幕関数を書いたテキストファイルです。

Re:Tatuさんの作ったsinカーブ弾幕について

Posted: 2010年3月23日(火) 02:28
by ハル
なるほど!
計算に不足があったことについてすごくわかりました。
勉強になります。

なにからなにまで
本当にありがとうございます