我有一些事件發生在遊戲中。我想控制這些事件發生的時間和順序。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