`(kakko ,man)

Find a guide into tomorrow by taking lessons from the past

Lisp Game Programming <Step11-3>

 

3番目は爆発したshipの復活処理で、リバイバルカウンターが200になったら、shipのstateを1(alive)に変更する

;; Step11 <Revive Ship>
;; -----------------------------------------------------------------------------------------------
(defgeneric Revive-counter (ship))

(defmethod Revive-counter (ship)
  (when (= (state ship) 3) ; ship is reviving
    (incf (revival-cnt ship) 1)
    (when (= (revival-cnt ship) 200)
      (setf (state ship) 1))))