我对一些代码有困难。我遵循Paul Hudak的优秀的Haskell表达式学派,不能调试程序。这是一个练习,我必须做一个划桨球(练习15.1)。我正在试着让球保持在屏幕的中心,然后再按左键。但是它破坏了程序,如果我同时删除xnormalSpeed和ynormalSpeed中的0 'untilB' lbp ->>部分,程序就能正常工作。球不会沿着x轴反弹(即使布尔值为真)。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发布于 2018-04-25 11:27:18
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))https://stackoverflow.com/questions/49887830
复制相似问题