       :direction      direction
       :rotation-speed rotation-speed
 
-      :collidable?    true
+      :collidable?    (not debris?)
+
+      :life-time      (if debris? debris-life-millis nil)
       }))
   ([size pos]
    (create-asteroid size pos [0 0]))

    (fill-polygon g polygon color)
    (fill-polygon g cockpit-polygon cockpit-color)))

(defmethod paint :shot [g {:keys [shape color] :as object}]
  (let [transformation (get-transformation-matrix object point-size)
        polygon (polygon-to-screen shape transformation)]
    (fill-polygon g polygon color)))

(defmethod paint :asteroid [g {:keys [shape color] :as object}]
  (let [transformation (get-transformation-matrix object point-size)
        polygon (polygon-to-screen shape transformation)]
    (draw-polygon g polygon color)))

      (.fillPolygon jpolygon)))
  nil)

(defmulti paint (fn [_ {type :type}]
                  (cond
                    (= type :ship) :ship
                    (some #{:shot} type) :fill
                    (some #{:asteroid :debris} type) :draw)))

(defmethod paint :ship [g {:keys [shape life-colors life cockpit-shape cockpit-color shots] :as ship}]
  (doseq [shot shots]
