sand.flan takes the def/defonce split
The colours were the report: edited, re-evaluated, unchanged, because defvar had said init-once and meant it. They are a def now, and so is gravity, which is a number to turn while the sand falls, and game-data, which is a file to edit and see re-read. The grid, the velocity field and the arena stay defonce: they are what the running game is, and a re-run that emptied them would be a restart wearing a re-run's name. current-color is the same argument about a smaller thing -- a brush you picked is a brush you keep.
This commit is contained in:
parent
9cfe7e7218
commit
0a8dc1d82b
14
sand.flan
14
sand.flan
@ -12,8 +12,8 @@
|
||||
(defn dyn->f64 [v f64] f64 v)
|
||||
(defn dyn->u32 [v i64] u32 (u32 v))
|
||||
|
||||
(defvar gravity dyn 0.05)
|
||||
(defvar colors dyn
|
||||
(def gravity dyn 0.05)
|
||||
(def colors dyn
|
||||
(let [v (vec-new dyn)]
|
||||
(push v 0xFFF00FFF)
|
||||
(push v 0x3B6E8CFF)
|
||||
@ -21,9 +21,9 @@
|
||||
(push v 0xCC6B1FFF)
|
||||
v))
|
||||
|
||||
(defvar grid [rows [cols u32]])
|
||||
(defvar velocity [rows [cols f32]])
|
||||
(defvar current-color dyn 0)
|
||||
(defonce grid [rows [cols u32]])
|
||||
(defonce velocity [rows [cols f32]])
|
||||
(defonce current-color dyn 0)
|
||||
|
||||
(defn clear-grid [] ()
|
||||
(set grid (zeroed))
|
||||
@ -112,8 +112,8 @@
|
||||
(rl/get-color c))))))
|
||||
(rl/draw-fps 20 20))
|
||||
|
||||
(defvar frame Allocator (arena-new 262144))
|
||||
(defvar game-data dyn
|
||||
(defonce frame Allocator (arena-new 262144))
|
||||
(def game-data dyn
|
||||
(handler-case (edn/read-file "game-data.edn")
|
||||
[(FileError [c] nil)]))
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user