現在ロックマン風アクションゲームを制作中なのですが、
タイトル通り無敵時間で悩んでいます。
void AtariHeroAndMonster(int idx){
//プレイヤーとモンスターの当たり判定
int muteki = 0; // 無敵時間のカウンタ
float ax1 = g_stagedata.hero.x + 10;
float ay1 = g_stagedata.hero.y + 10;
float ax2 = g_stagedata.hero.x + IMG_CHIPSIZE - 10;
float ay2 = g_stagedata.hero.y + IMG_CHIPSIZE - 10;
float bx1 = g_stagedata.enemies[idx].x + 10;
float by1 = g_stagedata.enemies[idx].y + 10;
float bx2 = g_stagedata.enemies[idx].x + IMG_CHIPSIZE - 10;
float by2 = g_stagedata.enemies[idx].y + IMG_CHIPSIZE - 10;
if ((ax1 < bx2) && (bx1 < ax2) && (ay1 < by2) && (by1 < ay2) && muteki == 0){
muteki = 10000; // 無敵時間をセット
g_stagedata.hero.life--; //1ライフ減らす
//ライフがなくなったらゲームオーバー
if(g_stagedata.hero.life < 1){
g_gamestate = GAME_OVER;
g_timerstart = g_lasttime;
}
}
if (muteki > 0) {
--muteki;
//点滅処理
g_stagedata.hero.muteki = muteki;
if (muteki <= 0) {
// 無敵時間の終わり
muteki = 0;
}
}
}
今だとそれが出来ていないです。よろしくお願いします。