 (def SCALE-W 800)
 (def SCALE-H 450)
 
+(def PLAYER_1_COLOR "dodgerblue")
+(def PLAYER_2_COLOR "peru")
+
+(def SCORE_FONT "60px Helvetica")
+(def SCORE_COLOR "#555")
+
+(def BALL_COLOR "lime")
+
 (def KEYBOARD
   {40 :down
    38 :up

(defrecord Rect [x y width height color])
(defrecord Frame [x y width height color frame-width])
(defrecord Paddle [x y width height vy color])
(defrecord Ball [x y radius vx vy fill-color])

;;-----------------------------------------------------------------------------
;; Drawable Objects


(extend-type Ball
  IMovable
  (move [{:keys [x y vx vy radius oob?] :as ball}]
    (when-not oob?
      (cond
        (= x radius)
        (assoc ball :oob? false :x -100)
        ;;
        (= x (- SCALE-W radius))
        (assoc ball :oob? false :x (+ SCALE-W 100))
        ;;
        :else
        (let [vy (if (< radius y (- SCALE-H radius)) vy (* -1 vy))]
          (assoc ball :x (+ x vx) :y (+ y vy) :vy vy))))))

;;-----------------------------------------------------------------------------
;; Controllable Objects
