【发布时间】:2010-12-19 06:54:49
【问题描述】:
我有许多在游戏中发生的事件。我想控制这些事件发生的时间和顺序。
例如:
事件 1:在屏幕上显示一些文本 N 帧并播放声音效果
事件2:清除屏幕上的文字
我的解决方案(也许有更好的解决方案)是有一个包含事件的函数列表。事件执行它们的行为,然后返回在游戏中发生的下一个事件。我想到了使用 List.map 或 List.collect,因为我实际上是在执行一些行为代码时将事件列表映射到新的事件列表。
在上面的例子中,Event1 可以由两个函数组成:一个显示文本,一个播放声音(因此需要一个列表)。显示文本的函数将返回 N-1 帧的自身副本,然后返回 Event2 清除文本。播放声音函数将返回相当于无操作。
如果这是一个好的解决方案,我可能会在 C++ 或 C# 中完成。我的目标是在 F# 中做一个等效或更好的解决方案。
【问题讨论】:
-
你想用你的函数列表解决什么问题?
-
我改变了我原来的问题,因为它是在解决方案空间中定义的;不是问题空间。我希望这可以解决问题。