在C中经过时间后产卵

在C中经过时间后产卵,c,spawn,C,Spawn,我正在制作一个简单的游戏,并试图在游戏开始5秒后生成字符。这是我代码的一部分,我不确定是否必须使用time.h或循环函数或其他什么。谁能给我一些建议吗?多谢各位 char * image = /**/ "H H" /**/ "H H" /**/ "HHHHH" /**/ "H H" /**/ "H H"; #define HERO_WIDTH (5) #define HERO_HEIGHT (5) void setup_hero( void )

我正在制作一个简单的游戏,并试图在游戏开始5秒后生成字符。这是我代码的一部分,我不确定是否必须使用time.h或循环函数或其他什么。谁能给我一些建议吗?多谢各位

char * image =
/**/    "H   H"
/**/    "H   H"
/**/    "HHHHH"
/**/    "H   H"
/**/    "H   H";

#define HERO_WIDTH (5)
#define HERO_HEIGHT (5)

void setup_hero( void ) {
    // Set up the hero at the centre of the screen.
    int hero_x = ( screen_width() - HERO_WIDTH ) / 2;
    int hero_y = ( screen_height() - HERO_HEIGHT ) / 2;
    hero = sprite_create( hero_x, hero_y, HERO_WIDTH, HERO_HEIGHT, image );

   wait(5); // not working
   sprite_draw(image);  
   show_screen();
}

通常,游戏是以事件为导向的。它们有一个主循环,除了轮询用户输入、更新计时器和更新/渲染场景中的所有实体外,几乎什么都不做

主循环更新的计时器跟踪自循环最后一次迭代以来经过的毫秒数,通常称为“增量”时间。增量时间对于缩放动画和声音的速度非常有用,因为主循环完成所需的时间取决于许多因素

完成您尝试执行的操作的一种方法是,在第一次生成实体时,将其计数器设置为0。每次更新实体时,将增量时间添加到计数器。当计数器大于或等于5000ms时,则已过5秒

在C中实现增量时间的最佳方法是使用
中的
时钟功能。它返回自程序启动以来经过的cpu周期数。将该值除以
CLOCKS\u PER_sece/1000
将得到经过的毫秒数。从当前时间中减去最后一次迭代的时间,得到增量时间


请参阅:

系统调用是暂停x秒,通常称为
睡眠
,而不是
等待
。因此,当游戏仍在运行时,睡眠功能是否会工作,如在生成字符时?您应该从编译器获得警告。
wait
未声明,或者它不需要
int
。如果你没有得到它们,调整你的构建系统。是一个POSIX系统函数,用于取消进程调度。调用它时,进程会离开CPU x秒,然后才能再次运行。阅读文档肯定会有所帮助,至少了解
wait()
显然会做一些其他事情,然后等待调用中指定的时间。