我已经将boot用于其他示例,但我正在尝试将其与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))发布于 2017-03-02 20:39:01
这段代码可以工作,但它不是正确的答案,因为它使用了睡眠。有没有更好的方法来做到这一点而不睡觉?
#!/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))发布于 2017-03-03 15:29:38
在创建窗口之后,主线程可能没有其他事情要做,JVM退出。您可以通过在调用q/defsketch之后添加一个(Thread/sleep 5000)来确认这一点。
我快速浏览了一下quil的代码。defsketch返回一个quil.Applet的实例,它实现了processing.core.PApplet。虽然PApplet在幕后使用了AWT,但它没有扩展或实现任何AWT类,它在内部创建了其他处理类。
保持窗口打开的最简单方法是在创建草图后使用(.read System/in)从控制台读取。不过,可能还有其他更花哨的方法。
发布于 2019-04-01 08:03:41
通常,您会希望将示例转换为引导任务,然后调用您的羽毛笔任务+监视任务,以防止引导管道退出。
即。boot watch quill
这将防止引导在您的quill任务完成后退出,但是您可能需要根据quill的功能实现额外的控制流。
https://stackoverflow.com/questions/42545556
复制相似问题