SpriteKit 实体组件系统 - 带有显示元素的冷却计时器

SpriteKit Entity Component System - cooldown timer with display element

在实体组件系统中,创建冷却计时器的正确方法是什么,该冷却计时器具有可以附加到按钮(例如)的显示元素?

我最初的想法是单独分离出计时器和进度条组件,计时器要么委托回实体通过特定 number/percentage 更新进度条,要么计时器尝试获取正确的组件从实体本身并更新它。通过这种方式,我将所有关注点分解为单独的组件。但这实际上应该都在一个组件中,例如 timerProgressBarComponent 被视为 "one job"。理想情况下,这将向现有精灵添加显示元素以展示剩余时间。

如果您需要更多上下文,我目前考虑的是只能每 10 秒按下一次的按钮,但我想更新 ui 以指示如何还剩 long,10 秒后再次使按钮可点击。

没有"correct way"只有你喜欢的。如果我这样做,我会分离出计时器以允许各种类型的进度条,但这并不意味着进度条包含自己的计时器并仍然作为单个组件是不可行的。