当り判定について
Posted: 2009年7月28日(火) 21:24
華穂です。
あぅ・・まさかの3日連続の書き込みです。
ごめんなさい。
えと、今日はちょっと・・題名通り当り判定についてアドバイスがほしくて書き込み
させていただきました。
昨日のアドバイスのおかげでようやく敵の動きをつくることができ、ほっとして
いたんですが、今日から自機の弾と敵との当り判定を作ったところ・・なぜか弾が
素通りするという事態に・・「???(泣)」状態です。
えと、DrawFormatを利用したところ、どうやら弾が出た(発射)時から既にはずれになっている
んです。
ソースは・・。
当り判定だけちょっと敵の挙動の関数からはずして別の関数を利用してみました。
int My_Atari()
{
int Cr = GetColor(255, 255, 255);
//弾が表示されていれば判定
if(TamaFlag == 1)
{
if((( TamaX > EZakoX && TamaX < EZakoX + EZakoW) &&
( EZakoX > TamaX && EZakoX < TamaX + TamaW)) ||
(( TamaY > EZakoY && TamaY < EZakoY + EZakoH) &&
( EZakoY > TamaY && EZakoY < TamaY + TamaH)))
{
//当たったら敵と弾消滅
BotuEZako = 0;
TamaFlag = 0;
DrawFormatString(0, 400, Cr, "当たり%d", BotuEZako);
}
else
{
DrawFormatString(0, 400, Cr, "はずれ%d", BotuEZako);
}
}
return 0;
}
です。
えと、この敵(TEZako)はsin波の動きの敵です。
弾は1発発射したら画面外に出るまでは次の弾が発射できないようにしているため、
(TamaFlag)としました。
当れば敵と弾は消滅します。
が、なぜかこれではただ敵を華麗にスル―するという・・当り判定は円?丸?ではなく、
□・矩形の判定です。
これはあれでしょうか・・、弾で考えているから駄目なんでしょうか?
なにとぞアドバイス・ご指摘・ご指南の方をよろしくお願いします。
あぅ・・まさかの3日連続の書き込みです。
ごめんなさい。
えと、今日はちょっと・・題名通り当り判定についてアドバイスがほしくて書き込み
させていただきました。
昨日のアドバイスのおかげでようやく敵の動きをつくることができ、ほっとして
いたんですが、今日から自機の弾と敵との当り判定を作ったところ・・なぜか弾が
素通りするという事態に・・「???(泣)」状態です。
えと、DrawFormatを利用したところ、どうやら弾が出た(発射)時から既にはずれになっている
んです。
ソースは・・。
当り判定だけちょっと敵の挙動の関数からはずして別の関数を利用してみました。
int My_Atari()
{
int Cr = GetColor(255, 255, 255);
//弾が表示されていれば判定
if(TamaFlag == 1)
{
if((( TamaX > EZakoX && TamaX < EZakoX + EZakoW) &&
( EZakoX > TamaX && EZakoX < TamaX + TamaW)) ||
(( TamaY > EZakoY && TamaY < EZakoY + EZakoH) &&
( EZakoY > TamaY && EZakoY < TamaY + TamaH)))
{
//当たったら敵と弾消滅
BotuEZako = 0;
TamaFlag = 0;
DrawFormatString(0, 400, Cr, "当たり%d", BotuEZako);
}
else
{
DrawFormatString(0, 400, Cr, "はずれ%d", BotuEZako);
}
}
return 0;
}
です。
えと、この敵(TEZako)はsin波の動きの敵です。
弾は1発発射したら画面外に出るまでは次の弾が発射できないようにしているため、
(TamaFlag)としました。
当れば敵と弾は消滅します。
が、なぜかこれではただ敵を華麗にスル―するという・・当り判定は円?丸?ではなく、
□・矩形の判定です。
これはあれでしょうか・・、弾で考えているから駄目なんでしょうか?
なにとぞアドバイス・ご指摘・ご指南の方をよろしくお願いします。