如何编写启动脚本来加载quil / processing sketch?

问题描述 投票:1回答:3

我已经开始使用其他示例,但我试图将它与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))
clojure leiningen boot-clj quil
3个回答
0
投票

这段代码有效,但它不是正确的答案,因为它使用了睡眠。有没有睡觉的更好的方法吗?:

#!/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))

0
投票

创建窗口后,主线程可能没有其他任何操作,JVM退出。您可以在调用(Thread/sleep 5000)之后添加q/defsketch来确认这一点。

我快速浏览了quil的代码。 defsketch返回quil.Applet的实例,它实现了processing.core.PApplet。尽管PApplet使用AWT,它不会扩展或实现任何AWT类,但它在内部创建了其他Processing类。

保持窗口打开的最简单方法是在创建草图后从控制台读取(.read System/in)。可能还有其他更好的方法。


0
投票

通常,您希望将示例转换为启动任务,然后调用您的quill任务+监视任务以防止启动管道退出。

府。 Ku zxsw Poi

这将阻止在您的主轴任务完成后退出,但是您可能需要根据主轴的功能实现其他控制流程。

© www.soinside.com 2019 - 2024. All rights reserved.