Elm 键盘按键信号丢失
我需要键盘按键信号。但是STD库只有按键功能,由于游戏状态的快速变化(暂停和玩),导致我的程序“冻结”。如何解决此问题?查看elm信号额外包: 具体来说,有一个函数Elm 键盘按键信号丢失,elm,elm-signal,Elm,Elm Signal,我需要键盘按键信号。但是STD库只有按键功能,由于游戏状态的快速变化(暂停和玩),导致我的程序“冻结”。如何解决此问题?查看elm信号额外包: 具体来说,有一个函数Signal.Discrete.when更改为:a->Signal a->EventSource(EventSource是Signal()的类型别名) 以下程序将在屏幕上显示True,每次按下Enter键后500毫秒: import Text (asText) import Keyboard import Signal import
Signal.Discrete.when更改为:a->Signal a->EventSource
(EventSource
是Signal()
的类型别名)
以下程序将在屏幕上显示True
,每次按下Enter键后500毫秒:
import Text (asText)
import Keyboard
import Signal
import Signal.Discrete (whenChangeTo)
import Signal.Time (since)
enterKeyUp = whenChangeTo False (Keyboard.isDown 13)
main = Signal.map asText (since 500 enterKeyUp)
编辑:
我添加了since 500 enterKeyUp
,这是一个很容易看到enterKeyUp
信号正在工作的视觉效果。下面是另一个示例,演示如何在没有500毫秒部件的情况下使用它。它显示释放enter键的次数:
import Text (asText)
import Keyboard
import Signal
import Signal.Discrete (whenChangeTo)
import Signal.Time (since)
enterKeyUp = whenChangeTo False (Keyboard.isDown 13)
count : Signal a -> Signal Int
count signal = foldp (\_ x -> x + 1) 0 signal
main = Signal.map asText (count enterKeyUp)
是的,我的
信号。离散的模块有一个用例:)这就是我写那篇文章时的想法,很高兴看到它确实很受欢迎。但是,当我不想要500毫秒的时候,怎么做呢?只需删除自500以来的。enterKeyUp
信号已经是一个信号,每次释放回车键时都会触发。