と、スピード感バトルを目指してるってことで最大敵数(9体)で戦闘を行った時にどれだけカオスな状況になるかやってみた。
ちなみに敵が使ってくる魔法が新しい魔法アニメーションです。
こちらが使う魔法が先日UPしたものです。
[BBvideo 425,350]http://www.nicovideo.jp/watch/sm12475612[/BBvideo]
古典的な感じですが、このような雰囲気の戦闘とアニメーションは大好きです。以下は隕石のアニメーション部分です。
/**********************************************
Function:魔法アニメーション0(タメ4)
Argument:turnF -> 画像反転フラグ
end -> 描画最終座標
cnt -> 描画カウンター
Return :描画が終了したかどうか
**********************************************/
static bool MagicEffect0_4(int turnF, Pos end, int cnt)
{
const int scCnt1 = 20;
const int scCnt2 = scCnt1 + 60;
const int scCnt3 = scCnt2 + 30;
const int scCnt4 = scCnt3 + 20;
int imgNo;
int sign;
int randX = GetRand(10);
int randY = GetRand(10);
randX -= 5;
randY -= 5;
if(turnF) sign = -1;
else sign = 1;
if(cnt < scCnt1){// 隕石落ち始め
if(cnt == 0)PlaySoundMem(seFire4, DX_PLAYTYPE_BACK, TRUE);// 音
imgNo = scCnt1 / 4;
imgNo = cnt / imgNo;
int px = end.posX + sign*(scCnt2 - cnt)*2 + randX;
int py = end.posY - (scCnt2 - cnt)*2 + randY;
DrawRotaGraph(px, py, 1.0, ANGLE(-45*sign), picFire6[imgNo], TRUE, turnF);
}
else if(cnt < scCnt2){// 隕石ループ部分
imgNo = cnt%2;
int px = end.posX + sign*(scCnt2 - cnt)*2 + randX;
int py = end.posY - (scCnt2 - cnt)*2 + randY;
DrawRotaGraph(px, py, 1.0, ANGLE(-45*sign), picFire6[imgNo+4], TRUE, turnF);
}
else if(cnt < scCnt3){// 爆発部分
if(cnt == scCnt2){
StopSoundMem(seFire4); // Stop SE
PlaySoundMem(seFire3, DX_PLAYTYPE_BACK);
}
int temp = (scCnt3 - scCnt2)/6;
imgNo = (cnt - scCnt2) / temp;
DrawRotaGraph(end.posX, end.posY, 3.0, 0, picFire7[imgNo], TRUE);
}
else if(cnt < scCnt4){
int bright = 255 - (cnt - scCnt3)*12;
SetDrawBlendMode( DX_BLENDMODE_ALPHA , bright ) ;
DrawRotaGraph(end.posX, end.posY, 3.0, 0, picFire7[5], TRUE);
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0) ;
}
else return true; // 描画終了
return false;
}