最新坦克大战2022-全程开发笔记-3

八、创建游循环

8.1 创建游戏的主体循环

int main(void) {
	init();

	createMyTank();
	createEnemyTank();

	while (1) {
		updataMap();
		updataAllTanks();
	}
	

	system("pause");
	return 0;
}

8.2 使用时间计数来优化循环

上一步的循环结构,不停的刷新,严重消耗系统的性能,必须要加以改进。最简单的方式,就使用时间计数来处理。注意,直接使用Sleep会影响到游戏的及时响应。

bool updata; // 是否更新, 并在init函数中初始化为true

int main(void) {
	init();

	createMyTank();
	createEnemyTank();

	int time = 0;
	while (1) {
		time += getDelay();
		if (time >= 20) {
			updata = true;
			time = 0;
		}
		
		if (updata) {
			updata = false;

			BeginBatchDraw();
			updataMap();
			updataAllTanks();
			EndBatchDraw();
		}
	}
	
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/pzjdoytt/article/details/124792043
今日推荐