From 3c3dcea8ee36c390ca96dd41f25b7da000d44217 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Mon, 26 Oct 2015 20:32:00 -0400 Subject: [PATCH] Cancel velocity on collision; cheap hack --- examples/platformer/game.rkt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/examples/platformer/game.rkt b/examples/platformer/game.rkt index 0649c43..61fca03 100644 --- a/examples/platformer/game.rkt +++ b/examples/platformer/game.rkt @@ -473,8 +473,11 @@ (define pos1 (v+ pos0 (v* (v+ vel1 imp0) (* impulse-multiplier elapsed-ms)))) (define final-pos (clip-movement-by-solids state-at-beginning-of-frame pos0 pos1 size)) + ;; TODO: figure out how to cancel just the component of velocity blocked by the obstacle(s) + ;; - which will avoid the "sticking to the wall" artifact + (define final-vel (if (v= pos1 final-pos) vel1 (vector 0 0))) ;; stop at collision ;; TODO: collision with enemies - ((update-piece g final-pos vel1) s)) + ((update-piece g final-pos final-vel) s)) (define (evaluate-jump-request id s) (define g (piece-cfg s id))