((moving-rectangle player)
(standing-rectangle door)
(collision collision))
-
- (cond ((find (dungeon standing-rectangle) (keys moving-rectangle))
+ (cond ((find-if #'(lambda (x) (string= x (dungeon standing-rectangle))) (keys moving-rectangle))
(setf (keys moving-rectangle) (delete (dungeon standing-rectangle) (keys moving-rectangle) :count 1))
(setf (visible standing-rectangle) nil)
(setf (active standing-rectangle) nil)
(setf (autojump moving-rectangle) 5)
(player-hits-enemy moving-rectangle
standing-rectangle
- collision))
+ collision)
+ (setf (colliding standing-rectangle) nil)
+ (move-about moving-rectangle (desired-movement collision))
+ (setf (colliding standing-rectangle) t)
+)
(defmethod on-collision
((moving-rectangle player)
collision)
(enemy-hits-player moving-rectangle
standing-rectangle
- collision))
+ collision)
+ (setf (colliding standing-rectangle) nil)
+ (move-about moving-rectangle (desired-movement collision))
+ (setf (colliding standing-rectangle) t)
+)