X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=games%2Fasteroids%2Fasteroids.scm;fp=games%2Fasteroids%2Fasteroids.scm;h=92b03c406c8a93ca506b906e5dc512311cad454c;hb=91dd14e8cb97624a3f7e0515afbff4d7143f514e;hp=b18b7f604906ae0838ec127c0c371200597954b3;hpb=2dd62c9397803ff96e72f9e27f138b58273b5976;p=gacela.git diff --git a/games/asteroids/asteroids.scm b/games/asteroids/asteroids.scm index b18b7f6..92b03c4 100644 --- a/games/asteroids/asteroids.scm +++ b/games/asteroids/asteroids.scm @@ -40,67 +40,31 @@ (set! moving #t)) (else (set! moving #f))) + (cond ((key-pressed? 'space) + (show-mob (make-shot #:x x #:y y #:angle angle)))) (translate x y) (rotate angle) (draw-texture (if moving ship2 ship1))) (define-mob (shot (x 0) (y 0) (angle 0)) + (let ((r (degrees-to-radians (- angle)))) + (set! x (+ x (* 10 (sin r)))) + (set! y (+ y (* 10 (cos r)))) + (cond ((or (> x max-x) + (< x min-x) + (> y max-y) + (< y min-y)) + (kill-me)))) + (translate x y) (rotate angle) (draw-line 10)) -;; (define (move-shots shots) -;; (cond ((null? shots) '()) -;; (else -;; (let* ((sh (car shots)) -;; (x (assoc-ref sh 'x)) (y (assoc-ref sh 'y)) -;; (angle (assoc-ref sh 'angle)) -;; (r (degrees-to-radians (- angle)))) -;; (set! x (+ x (* 10 (sin r)))) -;; (set! y (+ y (* 10 (cos r)))) -;; (cond ((and (<= x max-x) -;; (>= x min-x) -;; (<= y max-y) -;; (>= y min-y)) -;; (cons `((x . ,x) (y . ,y) (angle . ,angle)) -;; (move-shots (cdr shots)))) -;; (else -;; (move-shots (cdr shots)))))))) (show-mob (make-asteroid)) (show-mob (make-ship)) -;; (define (ship-shot s) -;; (cond ((key-pressed? 'space) -;; `((x . ,(assoc-ref s 'x)) (y . ,(assoc-ref s 'y)) (angle . ,(assoc-ref s 'angle)))) -;; (else -;; #f))) - -;; (define (draw-shot sh) -;; (to-origin) -;; (translate (assoc-ref sh 'x) (assoc-ref sh 'y)) -;; (rotate (assoc-ref sh 'angle)) -;; (draw-line 10)) - -;; (define (move-shots shots) -;; (cond ((null? shots) '()) -;; (else -;; (let* ((sh (car shots)) -;; (x (assoc-ref sh 'x)) (y (assoc-ref sh 'y)) -;; (angle (assoc-ref sh 'angle)) -;; (r (degrees-to-radians (- angle)))) -;; (set! x (+ x (* 10 (sin r)))) -;; (set! y (+ y (* 10 (cos r)))) -;; (cond ((and (<= x max-x) -;; (>= x min-x) -;; (<= y max-y) -;; (>= y min-y)) -;; (cons `((x . ,x) (y . ,y) (angle . ,angle)) -;; (move-shots (cdr shots)))) -;; (else -;; (move-shots (cdr shots)))))))) - ;; (define (make-asteroids n) ;; (define (xy n r) ;; (let ((n2 (- (random (* n 2)) n)))