我已经开始使用其他示例,但我试图将它与quil / Processing一起使用。我编写了这个简单的脚本并尝试运行它,但它只是启动一个Java Applet窗口然后立即关闭。没有错误日志供我调试。
#!/usr/bin/env boot
(set-env! :dependencies '[[quil "2.6.0"]])
(require '[quil.core :as q])
(defn setup []
(q/background 111 111 111 ) )
(defn -main [& args]
(q/defsketch my-art
:size [800 800]
:setup setup))
这段代码有效,但它不是正确的答案,因为它使用了睡眠。有没有睡觉的更好的方法吗?:
#!/usr/bin/env boot
(set-env! :dependencies '[[quil "2.6.0"]])
(require '[quil.core :as q])
(defn draw []
(println "in draw")
(q/background 111 111 111 ) )
(defn -main [& args]
(println "starting")
(q/defsketch my-art
:size [800 800]
:draw draw)
(Thread/sleep 5000))
创建窗口后,主线程可能没有其他任何操作,JVM退出。您可以在调用(Thread/sleep 5000)
之后添加q/defsketch
来确认这一点。
我快速浏览了quil
的代码。 defsketch
返回quil.Applet
的实例,它实现了processing.core.PApplet。尽管PApplet
使用AWT,它不会扩展或实现任何AWT类,但它在内部创建了其他Processing类。
保持窗口打开的最简单方法是在创建草图后从控制台读取(.read System/in)
。可能还有其他更好的方法。
通常,您希望将示例转换为启动任务,然后调用您的quill任务+监视任务以防止启动管道退出。
府。 Ku zxsw Poi
这将阻止在您的主轴任务完成后退出,但是您可能需要根据主轴的功能实现其他控制流程。