我正在为我的编程课用 C 语言制作一个游戏,我必须在游戏上放置一个时间倒计时,但我不能让它正常工作,因为如果放置一个倒计时函数和一个延迟(1000 ), 它适用于倒计时,但不适用于游戏,因为它让每一步都等待 1s。
到目前为止我的代码是
while(tempo > 0)
{
tempo_na_tela(&tempo);
contador_tempo(&tempo);
if(kbhit())
{
mover_refem(getch(), p_refem, &refem.px, &refem.py,
numero_inimigos_na_tela(n, in1));
}
mover_inimigo(n, p_terrorista, in1);
}
函数 tempo_na_tela(..)
将时间字符串放在屏幕上,contador_tempo(..)
是倒计时,mover_refem(. ..)
是移动游戏角色的函数,mover_inimigo(..)
是随机移动屏幕中敌人的函数。
我需要将 tempo_na_tela
和 contador_tempo
函数放在一个循环中,与另一个循环同时运行,运行移动函数。
我该怎么做?
最佳答案
您正在试验 XY problem我想。
您不需要同时运行这两个函数。您要实现的是一个游戏循环,这在视频游戏中很常见,尤其是早期的游戏。
问问自己,什么时候需要重新绘制元素?答案可能是在更新了所有数据(时间、敌人位置和记录了玩家的移动)之后
因此,您不需要同时循环(即我建议的线程,即使它不是真正的同时循环,但那是另一回事了。)
相反,你可以坚持一个循环,但你必须以这种方式做一些事情:
while (game_not_ended())
{
update_data();
repaint_data();
}
我希望您能花时间重新考虑您的代码和问题的范围。
关于c - 为一个游戏同时运行两个循环 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30057370/