スペカのエフェクト
Posted: 2011年4月15日(金) 00:07
前に似たような質問をしたのですが・・・。
http://dixq.net/forum/viewtopic.php?f=3&t=8160
この質問の段階では,最終的に拡大処理して不透明度を下げるというところまで追いつかず,ほったらかしにしていました(途中まででそれなりのものはできたのですが)。
現在,もう1つスペカのエフェクトをつくってみようとおもい,次のような関数をつくっています。
内容は,画面中央に縮小された画像がでて,だんだん拡大されて透明になっていき,最終的にはきえるというものです。引数に画像ハンドルを渡して呼んでいます。
1回この関数を使ってから2回目以降使えるようにするために,counterが10を超えたら0に戻すようにしました。しかしこれだと,何度も巻き戻されているような感じになり,ループしてしまいうまくいきません。たぶん,10になったら0に戻しているので,ループしているのだと思います。
10になったらcounterの値を0にして,counter++;を解除するにはどうすればいいでしょうか?ライブラリはDXライブラリです。
http://dixq.net/forum/viewtopic.php?f=3&t=8160
この質問の段階では,最終的に拡大処理して不透明度を下げるというところまで追いつかず,ほったらかしにしていました(途中まででそれなりのものはできたのですが)。
現在,もう1つスペカのエフェクトをつくってみようとおもい,次のような関数をつくっています。
void SpellEfect(int img){
int toumeido=128;
spell.x=200;
spell.y=300;
spell.flag=1;
if(spell.flag==1){
spell.counter++;
toumeido--;
SetDrawBlendMode( DX_BLENDMODE_ALPHA , toumeido ) ;
DrawRotaGraph(spell.x,spell.y,spell.counter*0.1,0,img,TRUE);
}
if(spell.counter==10){
spell.flag=0;
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 ) ;
spell.counter=0;
}
}
1回この関数を使ってから2回目以降使えるようにするために,counterが10を超えたら0に戻すようにしました。しかしこれだと,何度も巻き戻されているような感じになり,ループしてしまいうまくいきません。たぶん,10になったら0に戻しているので,ループしているのだと思います。
10になったらcounterの値を0にして,counter++;を解除するにはどうすればいいでしょうか?ライブラリはDXライブラリです。