Fal中的奇怪行为(Haskell库)

时间:2018-04-17 21:34:04

标签: haskell animation

我遇到一些代码有困难。我跟随Paul Hudak的优秀Haskell表达学校,无法调试程序。这是一个练习,我必须做一个Paddleball(练习15.1)。我想在左击之前让球保持在屏幕的中心。但是如果我删除xnormalSpeed和ynormalSpeed中的部分0 'untilB' lbp ->>,它会破坏可以正常工作的程序。球不会跟随x轴反弹(即使布尔xbounce变为真)。 xnormalSpeed的值始终保持等于2.

xpos, ypos :: Behavior Float
xpos = integral xnormalSpeed
ypos = integral ynormalSpeed

xnormalSpeed, ynormalSpeed :: Behavior Float
xnormalSpeed = 0 `untilB` lbp ->> (vel `stepAccum` when xbounce ->> negate)
ynormalSpeed = 0 `untilB` lbp ->> (vel `stepAccum` when ybounce ->> negate)

xbounce, ybounce :: Behavior Bool

vel :: Behavior Float
vel = 2

1 个答案:

答案 0 :(得分:0)

sample事件可能有用:

module Ex1 where
import Fal

ex = test (paint color2h circl)
circl = Fal.translate pt (Fal.ell 0.2 0.2)
pt = (xpos, 0)
xpos = 0.0 `untilB` lbp ->> (0.0 `stepAccum` sample ->> (+0.01))
相关问题