(動作保証なし.サポート対象外.)
ミサイル,敵機,等の消える物体...どーする?
... // データ構造 typedef struct { ... int life; // 状態(0:死亡中,1:活動中) } Mobj; // 発射関数 int Shoot(Mobj *obj, double px, double py, double vx, double vy) { if (obj->life != 0) return (1); // すでに活動中なら無視 obj->px = px; // 位置の初期化 obj->py = px; obj->vx = vx; // 速度の初期化 obj->vy = vy; obj->life = 1; // 状態の変更(活動開始) return (0); } // 移動関数 int Move(Mobj *obj) { if (obj->life == 0) return (1); // 死亡中なら無視 obj->px += obj->vx; // 位置の変更 obj->py += obj->vy; return (0); } // 消滅関数 int Kill(Mobj *obj) { if (obj->life == 0) return (1); // 死亡中なら無視 obj->life = 0; return (0); } // ゲームの本体 int Game() { Mobj ore, teki, tama; int key; ... key = getch(); if (key == ' ') Shoot(&tama, ore.px, ore.py, 0.5, 0.0); ... Move(&tama) if (tama が画面外に出た?) Kill(&tama); if (tama が teki に当たった?) { Kill(&tama); Kill(&teki); ... } ... } ...