秋姉妹の妹の弾幕

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

秋姉妹の妹の弾幕

#1

投稿記事 by » 15年前

秋姉妹の妹のこの弾幕を再現したいのですが、なかなかうまくいきませんでした。
最初は、2つの位置から連続で螺旋ショットを行い、
円状を保ちながら自機狙いで動いています。
さらにしばらく経つとhttp://sinkai.net/rp/14.phpのような3Dショットのように
変形していくというショットです。

最初少しスピードが速く、減速していくタイプのショットなんですが、
自分で作ってみましたが、2つの位置から連続で螺旋ショットを行い、
円状を保ちながら自機狙いで動くというのが再現できませんでした…。
ヒントを頂けないでしょうか…?

このbullet_way関数は支館の関数を使わせて頂いています。

void boss_shot_bulletH001(){
int i,t=boss_shot.cnt%160;

if(t%3==0&&t<80){
//bullet_way(発射X,発射Y,n_way弾, ベース角度(弾がどこに向かっていくか), 分割角度幅, 速度, 種類, 色, 状態);
bullet_way(boss.x-cos(PI/2+PI/150*t)*100,boss.y-sin(bossatan2())*10,2, bossatan2(), 0, 4, 2, 0, 0);

}
for(i = 0; i < BOSS_BULLET_MAX; i++){
if( boss_shot.bullet.flag > 0){
double spd = boss_shot.bullet.spd;
if( spd >= 1 )
boss_shot.bullet.spd -= 3.5/30;
}
}
}

Tatu

Re:秋姉妹の妹の弾幕

#2

投稿記事 by Tatu » 15年前

秋穣子の通常1のらせん状の弾の再現をしてみましたが、
これでよいでしょうか?よい場合はソースコードを見て、
どこが違うのかまとめてください。
//弾発射関数
void boss_bullet_on(int way,int knd,int col,double x,double y,double b_angle,double d_angle,double spd,int state,int till,int eff=0,int sflag=1){
	int i=0,k;
	for(i=0;i<way;i++){
		if((k=search_boss_shot())!=-1){
			boss_shot.bullet[k].knd   = knd;//弾の種類
			if(knd==7) boss_shot.bullet[k].kaiten=1;
			else boss_shot.bullet[k].kaiten=0;
			boss_shot.bullet[k].col   = col;//弾の色
			boss_shot.bullet[k].flag  = 1;
			boss_shot.bullet[k].cnt   = 0;
			boss_shot.bullet[k].x     = x;//座標
			boss_shot.bullet[k].y     = y;
			boss_shot.bullet[k].angle = b_angle+d_angle*(i - way/2);//角度:bが基準、dが間隔
			boss_shot.bullet[k].spd   = spd;//スピード
			boss_shot.bullet[k].state = state;//弾の状態
			boss_shot.bullet[k].till  = till;//弾が画面外に出ても消えない時間
			boss_shot.bullet[k].eff	  = eff;//加算ブレンドするか否か
			if(sflag==1)se_flag[0]=1;
		}
	}
}
//弾幕関数
void boss_shot_bulletT097(){
	int i,t=boss_shot.cnt%200;
	double x,y,ang;
	if(t==0) boss_shot.base_angle[0]=rang(PI2);
	if(t<75){
		ang=boss_shot.base_angle[0]+t*PI2/45;
		x=1.2*t*cos(ang);
		y=1.2*t*sin(ang);
		boss_bullet_on(1,8,5,boss.x+x,boss.y+y,atan2(ch.y-(boss.y+y),ch.x-(boss.x+x)),0,6,1,0,0,1);
		boss_bullet_on(1,8,5,boss.x-x,boss.y-y,atan2(ch.y-(boss.y-y),ch.x-(boss.x-x)),0,6,1,0,0,1);
	}

	for(i=0;i<BOSS_BULLET_MAX;i++){
		if(boss_shot.bullet.flag==1 && boss_shot.bullet.state==1){
			if(boss_shot.bullet.spd>1.5){
				boss_shot.bullet.spd-=4.5/30;
			}
		}
	}
}

Re:秋姉妹の妹の弾幕

#3

投稿記事 by » 15年前

回答ありがとうございます。
まさかコードを載せて頂けるとは…
秋穣子と同じで驚きました。
違う点をあげますと、
自機狙いがこちらの方が強い感じです。
ですが、その方が難易度を上げやすいので
自分でいじくってみます。

本当にありがとうございます。

閉鎖

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