如何在 CodeWorld 中组合由 TimePassing() 和 Event 控制的 activityOf()?

How to combine activityOf() controlled by both TimePassing() and Event in CodeWorld?

我想使用键盘或指针通过increasing/decreasing 一些变量来控制模拟的物理过程。我可以看到,您必须为 change() 选择 TimePassing() 或 KeyPress() 等。我可以理解您需要两个并行的 运行 任务。然后我开始想到使用“入口点”groupActivityOf()。您可以在同一台计算机上有两个“任务”或程序 运行 吗?因此,我会让一个任务使用 TimePassing() 更新,另一个任务使用 KeyPress() 更新。

Daniel 让我有了不同的想法,这里有一个例子说明了连续时间(用 dt 采样)和状态变化事件的组合,这确实有效!

program                           = activityOf(state_0, change, picture)
state_0(rs)                       = (t0,u0)
t0 = 0
u0 = 0
change((t, u), KeyPress("Up"))    = (t, u+1)
change((t, u), KeyPress("Down"))  = (t, u-1)
change((t, u), TimePassing(dt))   = (t+dt, u)
change((t, u), other)             = (t, u)
picture(t, u)                     = pictures [translated(lettering(printed(t)),0,1), lettering(printed(u))]