1

我已经启动了其他示例,但我尝试将它与 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))
4

3 回答 3

0

窗口创建后,主线程可能无事可做,JVM 退出。(Thread/sleep 5000)您可以通过在对 的调用后添加一个来确认这一点q/defsketch

我快速浏览了quil's 的代码。返回一个实现processing.core.PAppletdefsketch的实例。尽管在幕后使用 AWT,但它没有扩展或实现任何 AWT 类,但它在内部创建了其他处理类。quil.AppletPApplet

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

于 2017-03-03T07:29:38.467 回答
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))
于 2017-03-02T12:39:01.270 回答
0

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

IE。boot watch quill

一旦您的 quill 任务完成,这将阻止引导退出,但是您可能需要根据 quill 的功能实现额外的控制流。

于 2019-04-01T00:03:41.463 回答