雪がどんどん降ってきて、だんだんつもっていく(だんだん地平線が下から迫ってくる)
弾幕を作ってみたんですが、弾を画面に残すので当然だんだんと処理が重くなるんですよね・・
降ってからしばらくした弾は確率で消すようにしてみたんですが、なんか画面上の雪が
突然ぱっと消えるってのも変な感じだなとおもいまして。
なにか処理速度を維持しやすい方法ってありますか?
龍神録と同じ形式で作っています
void boss_shot_bulletI007(){ //雪の積もる弾幕
#define TM007 6 //6カウントに一回、「地平線」を1上に
int i,k,t=boss_shot.cnt,t2=boss_shot.cnt%TM007;
static double landline=520;//「地平線」の初期高さ
if(bom.flag!=0)
landline=520;//ボムが撃たれたら「地平線」を元に戻す
if(t%180==0) //3秒に一回ボスの移動
move_boss_pos(50,50,FMX-50,150,100,60);
if(t>=0&&t%1==0){//常に雪を降らせる
int j=t%2==0?7:8;//弾の形
int l=t%2==0?9:8;//弾の色
if((k=search_boss_shot())!=-1){
boss_shot.bullet[k].flag=1;
boss_shot.bullet[k].knd=j;//弾の形
boss_shot.bullet[k].cnt=0;
boss_shot.bullet[k].col=l;//弾の色
boss_shot.bullet[k].x=GetRand(384)+rang(0.5);//x座標は画面全体にわたって
boss_shot.bullet[k].y=-30; //画面端の少し↑から降ってくる
boss_shot.bullet[k].angle=PI/2+rang(PI/9);//だいたいまっすぐ降ってくる
boss_shot.bullet[k].spd=2-rang(1);//ゆっくり降ってくる
}
}
for(i=0;i<BOSS_BULLET_MAX;i++){//雪が「地平線」よりちょっと下なら
if(boss_shot.bullet.y>landline)
boss_shot.bullet.spd=0;//雪の降下を止める
//降ってある程度たった弾は確率で消す
if(boss_shot.bullet.spd==0&&boss_shot.bullet.cnt>=300&&GetRand(2000)==0)
boss_shot.bullet.flag=0;
}
if(t2==0)
landline--;//「地平線」をあげていく
}
同じような弾幕を知っていたら参考にしたいので教えてくださると助かります
【雑談程度の相談】雪の降ってくる弾幕
Re:【雑談程度の相談】雪の降ってくる弾幕
面白い発想の弾幕ですね。
ただ、次第に降り積もった雪が穴あき状態になるのはいいのでしょうか?
被弾した後、出現した時八方ふさがりになることもあるようです。
何か大きな弾を発射して、大きな弾が通った所は降り積もった雪が消えるような演出にしてみてはどうでしょう。
逃げ道も確保でき、描画すべき弾も減るように思います。
また、突然消えるとちょっとやすっぽいのでフワっと消えるようにしてみてはどうでしょう?
弾に
int Alpha;
なるものを持たせておき、Alphaには通常255を入れておきます。
255ではない値がセットしてある時だけ、描画するときに
SetDrawBlendModeでアルファブレンドするようにしてみてはどうでしょう?
消えるとき、Alphaを255→0にしてやればフワッと消えるように見えると思います。
後降り積もるときはもうちょっとぎっしりつめたほうがよくないですかね?
ただ、次第に降り積もった雪が穴あき状態になるのはいいのでしょうか?
被弾した後、出現した時八方ふさがりになることもあるようです。
何か大きな弾を発射して、大きな弾が通った所は降り積もった雪が消えるような演出にしてみてはどうでしょう。
逃げ道も確保でき、描画すべき弾も減るように思います。
また、突然消えるとちょっとやすっぽいのでフワっと消えるようにしてみてはどうでしょう?
弾に
int Alpha;
なるものを持たせておき、Alphaには通常255を入れておきます。
255ではない値がセットしてある時だけ、描画するときに
SetDrawBlendModeでアルファブレンドするようにしてみてはどうでしょう?
消えるとき、Alphaを255→0にしてやればフワッと消えるように見えると思います。
後降り積もるときはもうちょっとぎっしりつめたほうがよくないですかね?
Re:【雑談程度の相談】雪の降ってくる弾幕
>>Dixqさん
こんばんは。助言ありがとうございます。
なるほど、降り積もった雪を別の弾で消すっていう発想はなかったです。
おもしろくなりそうなので実装させていただきます。
ぎっしり降り積もらせるとますます弾が多くなっちゃうんですよね・・もう少し大きめの弾を使うなどして
調整して、弾消しの量も考えていきたいと思います。
ブレンドモードについては詳しく知りませんでした。結構種類があるんですね。色々試してみたいと思います。
雪が積もってる感だすにはまだまだ調整が必要みたいです。がんばってみます。
解決にするまで一応、もうちょっとだけ時間をあけます。コメントをおまちしています!
こんばんは。助言ありがとうございます。
なるほど、降り積もった雪を別の弾で消すっていう発想はなかったです。
おもしろくなりそうなので実装させていただきます。
ぎっしり降り積もらせるとますます弾が多くなっちゃうんですよね・・もう少し大きめの弾を使うなどして
調整して、弾消しの量も考えていきたいと思います。
ブレンドモードについては詳しく知りませんでした。結構種類があるんですね。色々試してみたいと思います。
雪が積もってる感だすにはまだまだ調整が必要みたいです。がんばってみます。
解決にするまで一応、もうちょっとだけ時間をあけます。コメントをおまちしています!
Re:【雑談程度の相談】雪の降ってくる弾幕
画面いっぱいになるほど降らせても仕方がないので、ある程度でストップすればいいのではないでしょうか?
また、一番大きい弾を加算ブレンドしてみるのもよいかもしれません。
加算はするほど白になります。
大玉が重なった瞬間は反魂蝶でも見られます。
[nico]http://www.nicovideo.jp/watch/sm4010061[/nico]
後、私もいつか作ってみたいと思っている弾幕のアイディアなのですが、
物理演算もどきで計算してみてはどうでしょう。
弾をけしたら上にある弾は落ちないとおかしいですよね。
物理演算っぽく降り積もれば結構良い見栄えになりそうです。
計算は難しいかもしれませんが・・。
また、一番大きい弾を加算ブレンドしてみるのもよいかもしれません。
加算はするほど白になります。
大玉が重なった瞬間は反魂蝶でも見られます。
[nico]http://www.nicovideo.jp/watch/sm4010061[/nico]
後、私もいつか作ってみたいと思っている弾幕のアイディアなのですが、
物理演算もどきで計算してみてはどうでしょう。
弾をけしたら上にある弾は落ちないとおかしいですよね。
物理演算っぽく降り積もれば結構良い見栄えになりそうです。
計算は難しいかもしれませんが・・。
Re:【雑談程度の相談】雪の降ってくる弾幕
>>Dixqさん
物理・・演算・・・
苦手ですがいつか本格的にやってみたいと思います。
いろいろとアイディアをありがとうございました。
これでこの質問は解決にします。
物理・・演算・・・
苦手ですがいつか本格的にやってみたいと思います。
いろいろとアイディアをありがとうございました。
これでこの質問は解決にします。