我正在写一个文本游戏,我需要一个简单的战斗系统,就像在 MUD 中一样,你发出命令,偶尔会发生“滴答”,当所有这些命令执行时,玩家和怪物会造成伤害,各种不同的东西发生。我如何实现这个概念?我考虑过创建一个保存最后滴答时间的变量,以及一个仅将事件放在堆栈上的函数,当那个时间是 (time +x) 时,它们会同时执行。有没有更简单或更干净的变体来做到这一点?
那可能的语法是什么?
double lastTickTime;
double currentTime;
void eventsPile(int event, int target)
{
// how do i implement stack of events? And send them to execute() when time is up?
}
void execute(int event, int target)
{
if ((currentTime - lastTickTime) == 2)
{
eventsHandler(event, target);
}
else
{ // How do I put events on stack?
}
}