Skip to content

Instantly share code, notes, and snippets.

@saikyun
Last active November 26, 2020 19:40
Show Gist options
  • Save saikyun/c3df632ede6bad3eb12c3cede7ba67ae to your computer and use it in GitHub Desktop.
Save saikyun/c3df632ede6bad3eb12c3cede7ba67ae to your computer and use it in GitHub Desktop.
repling with jaylib
# build jaylib (or use it as a dependency if you can)
# run `janet main.janet`
# in another terminal, run `janet main.janet connect`
# then modify and eval the `(defn frame ...)` form
# then run `(set frame-f frame)`
(use ./build/jaylib)
(import spork/netrepl)
(var font nil)
(var loop-fiber nil)
(var frame-f nil)
(defn frame
[]
(begin-drawing)
(draw-fps 300 10)
(clear-background [0 0 0])
(let [[x y] (get-mouse-position)]
(draw-text-ex font "hail friend" [30 30] 40 2 :red)
(draw-circle-gradient x y 31.4 :lime :red)
(draw-poly [500 200] 5 40 0 :magenta)
(draw-line-bezier
[(- x 100) y]
[(+ x 100) (+ y 50)]
4 :pink)
(draw-line-ex
[x (- y 10)]
[x (+ y 10)]
4 :sky-blue)
(draw-line-strip
[[x 0] [x 100] [50 y] [10 180]]
:ray-white))
(end-drawing))
(defn loop-it
[]
(set frame-f frame)
(set loop-fiber
(ev/call (fn [] (loop [i :range [0 10000]]
(when (key-pressed? :q)
(close-window)
(error "QUIT!"))
(frame-f)
(ev/sleep 0.01))))))
(defn start
[]
(init-window 800 600 "Test Game")
(set font (load-font-ex "Texturina-VariableFont_opsz,wght.ttf" 80
(string/bytes "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ")))
(set-target-fps 60)
(loop-it))
(def env (fiber/getenv (fiber/current)))
(defn main [& args]
(if (= (get args 1) "connect")
(netrepl/client "127.0.0.1" "9000" "bob")
(do (netrepl/server "127.0.0.1" "9000" env)
(start))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment