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

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

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

#1

投稿記事 by ハル » 15年前

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を使って画像を描画させてみたのですが、
変わりませんでした…。

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

Tatu

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

#2

投稿記事 by Tatu » 15年前

以前の弾幕から波を描く弾の向きを進行方向に向くように変えました。

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

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

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

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

Tatu

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

#3

投稿記事 by Tatu » 15年前

弾幕関数を書いたテキストファイルです。

ハル

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

#4

投稿記事 by ハル » 15年前

なるほど!
計算に不足があったことについてすごくわかりました。
勉強になります。

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

閉鎖

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