我遇到一些代码有困难。我跟随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
答案 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))