我有启动与其他示例一起使用,但是我试图将其与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退出。您可以通过在致电q/defsketch
后添加(Thread/sleep 5000)
来确认这一点。
我快速查看了quil
的代码。defsketch
返回一个quil.Applet
的实例,该实例实现了processing.core.papplet。尽管PApplet
在封面下使用AWT,但它不会扩展或实现任何AWT类,但它在内部创建了其他处理类。
创建草图后,保持窗口打开的最简单方法是用(.read System/in)
从控制台读取。
通常,您需要将示例转换为启动任务,然后调用Quill Task Watch Task以防止启动管道退出。
即。boot watch quill
这将阻止Quill任务完成后启动退出,但是您可能需要根据Quill的功能来实现其他控制流。