STG 敵の弾

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
qq

STG 敵の弾

#1

投稿記事 by qq » 9年前

プログラミング初心者のものです。今STGを作っていてゲームオーバー後にカウンターやフラグなどをすべて初期化して初めから始まるようにしたいのですが敵の弾 EnemyShot関連のものがうまく初期化できません。それで、再び初めからにしたときに変な時に敵の弾が出たりします。

コード:

void re() {
	int i;
	for (i = 0; i < ENEMY_TOTAL_NUM; i++)
		if (enemy[i].flag == 1)
			break;
	int n, j;
	if (enemy[i].flag == 1) {
		for (j = 0; j <100; j++) {
			for (n = 0; n <200; n++) {
				EnemyShot[n].flag = 0;
				EnemyShot[j].counter = 0;
			}
		}
	}
		counter = 0;
		Player.x = 200.0;
		Player.y = 400.0;
		Player.counter = 0;
		enemy[i].flag = 0;
		enemy[i].counter = 0;
}

コード:

typedef struct {
	int flag;
	double x, y;
} ENEMY_SHOTS_t;

//enemy shot
typedef struct {
	int flag, pattern, counter, img;
	double mem_ex, mem_ey, mem_px, mem_py, Angle[ENEMY_TOTAL_SHOT_NUM];//[200];
	ENEMY_SHOTS_t EnemyShots[ENEMY_TOTAL_SHOT_NUM];//[200];
} ENEMY_SHOT_t;

ENEMY_SHOT_t EnemyShot[ENEMY_TOTAL_NUM];//[100];

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: STG 敵の弾

#2

投稿記事 by Dixq (管理人) » 9年前

if (enemy.flag == 1)
break;

ここで何故breakするのですか?
flagが立っている最初の敵しか初期化されていないように見えます。

閉鎖

“C言語何でも質問掲示板” へ戻る