Quak.
authorChristoph Senjak <christoph@christoph-senjaks-macbook-pro.local>
Wed, 19 Aug 2009 18:46:13 +0000 (20:46 +0200)
committerChristoph Senjak <christoph@christoph-senjaks-macbook-pro.local>
Wed, 19 Aug 2009 18:46:13 +0000 (20:46 +0200)
on-collision.lisp
player.lisp

index d9e47f7..9f9f329 100755 (executable)
@@ -54,6 +54,7 @@
   (collide-blocks moving-rectangle
                  standing-rectangle
                  collision)
+  (setf (bounced moving-rectangle) T)
   (setf (mayjump moving-rectangle) T)
   (setf (autojump moving-rectangle) 5)
   (player-hits-enemy moving-rectangle
index 72090d6..bbfb7d1 100755 (executable)
@@ -31,6 +31,9 @@
    (last-y :initarg :last-pos
             :accessor last-y
             :initform nil)
+   (bounced :initarg :bounced
+           :accessor bounced
+           :initform nil)
    (jump-accel :accessor jump-accel
               :initform -50)
    (mayjump :accessor mayjump
 (defmethod invoke ((obj player))
   "Do whatever a player does ^^"
 
-  (if (and
-       (last-y obj)
-       (< (last-y obj) (y obj)))
-      (setf (mayjump obj) nil))
+  (cond
+    ((bounced obj)
+     (setf (bounced obj) nil))
+    ((and
+      (last-y obj)
+      (< (last-y obj) (y obj)))
+     (setf (mayjump obj) nil)))
 
   (setf (last-y obj) (y obj))