From b4a08ea918e584ce9f80b8fa8678dd400e13cbeb Mon Sep 17 00:00:00 2001 From: BirDt_ Date: Fri, 17 Apr 2026 19:00:44 +0800 Subject: [PATCH] Ideal state for vector ops and interface --- samples/bounce.scm | 61 +++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/samples/bounce.scm b/samples/bounce.scm index 4849f51..904b70d 100644 --- a/samples/bounce.scm +++ b/samples/bounce.scm @@ -39,7 +39,7 @@ rigidbody-2d? (velocity rigidbody-2d-velocity set-rigidbody-2d-velocity!)) -(define +gravity+ (make-vector2 0 9.8)) +(define +gravity+ (make-vector 0 9.8)) (define +friction+ -0.1) (add-system @@ -49,11 +49,9 @@ '() (lambda (_ rbody) (set-rigidbody-2d-velocity! rbody - (vector-+ (rigidbody-2d-velocity rbody) - (vector-* - (make-vector2 (get-frame-time) - (get-frame-time)) - +gravity+)))))) + (+ (rigidbody-2d-velocity rbody) + (* (get-frame-time) + +gravity+)))))) (add-system (make-system 'apply-bounce @@ -63,7 +61,8 @@ (lambda (_ rbody transform) (when (> (vector-y (position transform)) (- (cdr (*window-size*)) +ball-radius+)) (set-rigidbody-2d-velocity! rbody - (make-vector2 (vector-x (rigidbody-2d-velocity rbody)) (* -1 (vector-y (rigidbody-2d-velocity rbody))))))))) + (* (rigidbody-2d-velocity rbody) + (make-vector 1 -1))))))) (add-system (make-system 'apply-wall-bounce @@ -74,7 +73,8 @@ (when (or (> (vector-x (position transform)) (- (car (*window-size*)) +ball-radius+)) (< (vector-x (position transform)) (+ 0 +ball-radius+))) (set-rigidbody-2d-velocity! rbody - (make-vector2 (* -1 (vector-x (rigidbody-2d-velocity rbody))) (vector-y (rigidbody-2d-velocity rbody)))))))) + (* (rigidbody-2d-velocity rbody) + (make-vector -1 1))))))) (add-system (make-system 'apply-friction @@ -83,10 +83,9 @@ '() (lambda (_ rbody) (set-rigidbody-2d-velocity! rbody - (vector-+ (rigidbody-2d-velocity rbody) - (vector-* - (make-vector2 (* (get-frame-time) +friction+) (* (get-frame-time) +friction+)) - (rigidbody-2d-velocity rbody))))))) + (+ (rigidbody-2d-velocity rbody) + (* (get-frame-time) +friction+ + (rigidbody-2d-velocity rbody))))))) (add-system (make-system 'move-rigidbody @@ -95,8 +94,8 @@ '( ) (lambda (_ rbody transform) (set-position! transform - (vector-+ (rigidbody-2d-velocity rbody) - (position transform)))))) + (+ (rigidbody-2d-velocity rbody) + (position transform)))))) (define-record-type (make-key-press key) @@ -120,8 +119,8 @@ (lambda (_ rbody) (when (peek-event 'input 'boost) (set-rigidbody-2d-velocity! rbody - (vector-* (make-vector2 2 2) - (rigidbody-2d-velocity rbody))))))) + (* 2 + (rigidbody-2d-velocity rbody))))))) (add-system (make-system 'clear-boost-input @@ -134,53 +133,53 @@ (create-entity (make-visual-2d (make-circle-2d - (make-vector2 0 0) + (make-vector 0 0) +ball-radius+ #t) (make-color 0 0 1 1) 0) (make-screen-transform - (make-vector2 100 100) - (make-vector2 0 0) + (make-vector 100 100) + (make-vector 0 0) 0 - (make-vector2 1 1) + (make-vector 1 1) 'center 'none) - (make-rigidbody-2d (make-vector2 5 1))) + (make-rigidbody-2d (make-vector 5 1))) (create-entity (make-visual-2d (make-circle-2d - (make-vector2 0 0) + (make-vector 0 0) +ball-radius+ #t) (make-color 0 1 0 1) 0) (make-screen-transform - (make-vector2 100 100) - (make-vector2 0 0) + (make-vector 100 100) + (make-vector 0 0) 0 - (make-vector2 1 1) + (make-vector 1 1) 'center 'none) - (make-rigidbody-2d (make-vector2 -2 -2))) + (make-rigidbody-2d (make-vector -2 -2))) (create-entity (make-visual-2d (make-circle-2d - (make-vector2 0 0) + (make-vector 0 0) +ball-radius+ #t) (make-color 1 0 0 1) 0) (make-screen-transform - (make-vector2 100 100) - (make-vector2 0 0) + (make-vector 100 100) + (make-vector 0 0) 0 - (make-vector2 1 1) + (make-vector 1 1) 'center 'none) - (make-rigidbody-2d (make-vector2 10 -5))) + (make-rigidbody-2d (make-vector 10 -5))) (create-window) )