Guest User

Untitled

a guest
Nov 4th, 2012
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (defmacro init-gen
  2.   [update-func]
  3.   `(defn ~'-init
  4.      []
  5.      (dosync (ref-set update-ref ~update-func))))
  6.  
  7. (defmacro make-game-class [update-func, name]
  8.   `(do
  9.      ~'(defn -state
  10.        [this]
  11.        @last-state)
  12.      
  13.      ~'(defn -startGame
  14.        [this]
  15.        (start-game))
  16.      
  17.      ~'(defn -getNextState
  18.        [this]
  19.        (get-next-state))
  20.      
  21.      (gen-class
  22.       :name ~(symbol (str "forspareparts.clj_game.clojure_aot.games." name))
  23.       :state ~'state
  24.       :init ~(init-gen update-func)
  25.       :methods [[~'startGame [] clojure.lang.IPersistentMap]
  26.                 [~'getNextState [] clojure.lang.IPersistentMap]])))
Advertisement
Add Comment
Please, Sign In to add comment