gpt4 book ai didi

c - C 中时间过去后生成

转载 作者:行者123 更新时间:2023-11-30 21:00:45 25 4
gpt4 key购买 nike

我正在制作简单的游戏,并试图让角色在游戏开始后 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 中实现增量时间的最佳方法是使用 clock函数位于 <time.h> 。它返回自程序启动以来经过的 cpu 周期数。将该值除以 CLOCKS_PER_SEC / 1000会给你已经过去的毫秒数。从当前时间减去上次迭代的时间即可得到增量时间。

参见:http://www.tutorialspoint.com/c_standard_library/c_function_clock.htm

关于c - C 中时间过去后生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39065754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com