在C中经过时间后产卵
我正在制作一个简单的游戏,并试图在游戏开始5秒后生成字符。这是我代码的一部分,我不确定是否必须使用time.h或循环函数或其他什么。谁能给我一些建议吗?多谢各位在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 )
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()
显然会做一些其他事情,然后等待调用中指定的时间。