   ;; Always
   (.clearRect ctx 0 0 SCALE-W SCALE-H)
   (draw! (:background @state) ctx)
-  (draw! (:border @state) ctx)
   ;;
   ;; While playing and game-over
   (when (contains? #{:playing :gameover} (:mode @state))

;; Object Definitions
;;-----------------------------------------------------------------------------

(defrecord Rect [x y width height color])
(defrecord Line [x1 y1 x2 y2 color])
(defrecord Frame [x y width height color frame-width])

(defrecord GameStartScreen [])
(defrecord Paddle [x y width height vy color])
(defrecord Ball [x y radius vx vy fill-color oob?])

   :ball       (Ball. 400 225 13 3 2 BALL_COLOR false)})

(defonce state
  (atom (merge objects
               {:mode :game-start ;; game-start game-over playing
                :pause? false
                :current-paddle :paddle-1})))
