私は龍神録プログラミングの館様で弾幕シューティングゲームの勉強をさせて頂いております。
今回私は「リサージュ図形を描き弾を配置した後、規則的な角度変化で弾が飛んでいく」弾幕を作ろうと思っております。
イメージは東方星蓮船のレイディアントトレジャーガンのような感じです。
参考動画 [youtube][/youtube]
弾が直線状に配置された後に規則的な角度変化で弾が飛んでいます。
自分で組んでみた結果次のようになりました
inline double Get_Angle_To_Radian ( double Temp_Angle ) { return Temp_Angle /180.0 *PI; }
void shot_bullet_H008(int n){
int t=shot[n].cnt;
int k;
if(t>=0 && t<360 && t%1==0){
if(shot[n].flag!=2 && (k=shot_search(n))!=-1){
shot[n].bullet[k].knd =4;
shot[n].bullet[k].angle =PI2;
shot[n].bullet[k].flag =1;
shot[n].bullet[k].x =200 +cos ( Get_Angle_To_Radian ( 5.0 *t ) )*150;
shot[n].bullet[k].y =140 -sin ( Get_Angle_To_Radian ( 6.0 *t ) + 0 )*150;
shot[n].bullet[k].col =6;
shot[n].bullet[k].cnt =0;
shot[n].bullet[k].spd =0;
se_flag[0]=1;
}
}
for(int i=0;i<SHOT_BULLET_MAX;i++){//全弾分
if(shot[n].bullet[i].flag>0){//登録されている弾があれば
int cnt=shot[n].bullet[i].cnt;
if(cnt >= 500){
for(int a=0;a<360;a++){
shot[n].bullet[i].angle +=PI2*a;
shot[n].bullet[i].spd =2.5;
}
}
}
}
}
for(int a=0;a<360;a++){
shot[n].bullet.angle +=PI2*a;
のように書けば角度が1度ずつずれて飛んでいく・・・と思っていましたが角度は変化せずに0度のままでした。
どのようにすれば配置された弾が一定の角度変化で飛んでいくようになりますか?お願いします。