ページ 11

ボスの魔法陣?(後ろで回ってる)について

Posted: 2010年3月20日(土) 19:32
by サンタクロース
こんにちは。
早速ですが、東方の本家みたいにボスの後ろでくるくる回っている魔法陣?
を時間の経過とともにどんどん小さくするにはどうすればよいでしょうか?
いちおう
DrawRotaGraphF(boss.dx+FX, boss.dy+FY,boss.endtime/3600, i/500,2*PI*(count%340)/340,img_etc[2], TRUE);
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0) ;
としてみたのですが最初の60cntしか描画されませんでした

Re:ボスの魔法陣?(後ろで回ってる)について

Posted: 2010年3月21日(日) 01:09
by Justy
 情報が少ないので憶測ですが。

 DrawRotaGraphF関数では表示スケールは3番めの引数にて double型で指定します。
 その例ですと boss.endtime/3600がそれにあたりますが、まず entimeメンバの型を確認して下さい。

 ここでもし endtimeメンバが int型などの整数型だったりすると、boss.endtime/3600の
演算結果は整数になります。

 つまり boss.endtimeが 0~3599はどの値であっても結果は 0、3600~7199で 1になります。
  0と 1の間は決して(滑らかに)補完されることはなく、 boss.endtimeの値が減っていくのであれば
スケール 1だったものが突如として 0になるということがあり得ます。

 これが原因だった場合、対処方としては演算を浮動小数点数で行えば解決するはずです。

 まずはメンバの型を確認してみて下さい。
画像

Re:ボスの魔法陣?(後ろで回ってる)について

Posted: 2010年3月21日(日) 01:47
by サンタクロース
回答ありがとうございます。そして原因はまさにそのとおりだったようです。
自分はてっきりDrawRotaGraphFの仮引数がfloatなものだから小数点以下もOKだと思っていました
おかげでまた一歩本家のSTGに近づけた気がします(笑)