如何编写引导脚本来加载Quil/Processing草图



我有启动与其他示例一起使用,但是我试图将其与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的功能来实现其他控制流。

相关内容

  • 没有找到相关文章

最新更新