gpt4 book ai didi

c++ - 如何在 C++ 中实现简单的基于 tick 的引擎?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:46:54 25 4
gpt4 key购买 nike

我正在写一个文字游戏,我需要一个简单的战斗系统,就像在 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?
}
}

最佳答案

简单 Action 堆栈的问题是 Action 的顺序可能是基于时间的——谁打字最快谁就会先击中。您可能应该在堆栈中引入优先级,例如首先触发所有全局事件,然后是生物的 Action 事件,但这些 Action 事件按某些属性排序,例如敏捷性或等级。如果一个生物具有更高的敏捷性,那么它会先受到攻击。

关于c++ - 如何在 C++ 中实现简单的基于 tick 的引擎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4234551/

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