我有一些事件发生在游戏中。我想控制这些事件发生的时间和顺序。F#:存储和映射功能列表
例如:
事件1:在屏幕上显示N个部分的文字框&播放声音效果
事件2:清除屏幕上的文本
我的解决方案(也许有更好的一个),就是有一个包含事件的函数列表。事件执行他们的行为,然后返回下一个事件发生在游戏中。我想过使用List.map或List.collect,因为我实际上是在执行某些行为代码时将事件列表映射到新的事件列表。
在上面的例子中,Event1可以由两个功能组成:一个显示文本和一个播放声音(因此需要列表)。显示文本的函数会为N-1帧返回自身的副本,然后返回清除文本的Event2。播放声音功能将返回相当于无操作。
如果这是一个很好的解决方案,我可以用C++或C#来做。我的目标是在F#中做一个等效或更好的解决方案。
你想用你的函数列表解决什么问题? – 2009-11-22 21:47:10
我已经改变了原来的问题,因为它在解决方案空间中定义;没有问题的空间。我希望这可以清除事情。 – rysama 2009-11-22 22:36:22