Hi all,
I'm trying to get started with an OpenGL (JOGL) application in
Clojure, and one of the first orders of business is establishing a
thread that repeatedly calls the display function - the game loop. I'm
not sure what the idiomatic way to do this in Clojure is.
The below code works, but is it good Clojure style and lightweight
enough for a game loop running at ~60 fps? I would greatly appreciate
any tips!
;;Prints incrementing integers every 500 ms in a separate thread
;is this the Clojure way?
(def counter 0)
(def animator (agent false));agent state = running flag
(defn animation [running]
(when running
(send-off *agent* #'animation))
(def counter (+ 1 counter))
; (set! counter (+ 1 counter)) <-- just doesn't work!
(println counter)
(. Thread sleep 500)
running)
(defn start-animation []
(send animator (fn [x] true));should this be send-off? why?
(send-off animator animation))
(defn stop-animation []
(send animator (fn [x] false)))
;for SLIME
(comment
(start-animation)
(stop-animation)
)
Thanks a lot! Clojure is a blast!
Best,
Curran Kelleher
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---