我在 Haskell 中制作了一个场景图功能渲染引擎,我想知道如何在混合中添加交互。
起初,我以为我可以只拥有另一个 Handler 节点,它接收其他节点之一,然后对其应用一些 IORef。例如,如果我有
x,y,z <- IORef 0
KeyboardHandler KeyboardCallBack $ Translate x y z $ Object
穿越时,我会有
KeyboardHandler keyboard drawable -> case drawable of
Translate x y z _ -> do
(Char 'q') -> x $~! (-1)
(Char 'w') -> x $~! (+1)
(Char 'a') -> y $~! (-1)
(Char 's') -> y $~! (+1)
(Char 'z') -> z $~! (-1)
(Char 'x') -> z $~! (+1)
render drawable
有可能做这样的事情还是我完全走错了路?