我有一个显示两个形状的简单窗口:
import Graphics.Gloss
circles = pictures [Translate 80 0 one, Translate (-80) 0 two]
main = display (InWindow "t" (400,400) (800,0)) white circles
one = Color red $ Circle 80
two = Color blue $ Circle 50
我是Gloss的新手,但是从我收集的内容"显示"只需在主要(即我的模块)运行后显示静态图像,这样您就无法使用"显示"正确?
我想要做的是使用这些形状运行我的程序,但不是一次显示它们,我想首先显示一个圆,然后是另一个圆形,就像某种动画一样。
到目前为止,我只能做一些静态操作,并在程序运行时立即显示两个圆圈。但我希望它们像Run the program -> (0 sec) Blank screen -> (1 sec) One of the circles is drawn -> (2 sec) the other circle is drawn -> The window now displays circles until I close it.
这应该是如此简单,使用" animate"功能,但我无法弄清楚。如果有人知识,请考虑帮助!这真的会成为我的一天。
答案 0 :(得分:3)
您可以使用animate
根据动画时间绘制图片:
main = animate (InWindow "t" (400,400) (800,0)) white draw
draw :: Float -> Picture
draw t
| t <= 1 = blank -- in the first second
| t <= 2 = pictures [Translate 80 0 one] -- between 1s and 2s
| otherwise = pictures [Translate 80 0 one, Translate (-80) 0 two] -- afterwards