git @ Cat's Eye Technologies Decoy / master eg / map-demo.scm
master

Tree @master (Download .tar.gz)

map-demo.scm @masterraw · history · blame

; SPDX-FileCopyrightText: Copyright (c) 2023-2024 Chris Pressey, Cat's Eye Technologies.
; This work is distributed under a 2-clause BSD license. For more information, see:
; SPDX-License-Identifier: LicenseRef-BSD-2-Clause-X-Decoy

;
; Code that demonstrates importing symbols from a module.
;

(import-from "map" (new-map set get update))

;----------------------------------

(let* ((a (new-map))
       (b (set (quote key) (quote value) a))
       (c (update (quote key) (lambda (x) (cons (quote f) (cons x (quote ())))) b))
       (v (get (quote key) c)))
    (list a b c v))

;----------------------------------

(define reset-player (lambda (player)
  (set "x" 200 (set "y" 200 (set "vx" 0 (set "vy" 0 (set "ax" 0 (set "ay" 0
    (set "h" 270 (set "dh" 0 (set "f" 0 (set "mode" "GET_READY" (set "timer" 200 player)))))))))))
))

(define make-player (lambda ()
  (reset-player (set "score" 0 (set "lives" 2 (set "mass" 1 (new-map)))))
))

(make-player)

;----------------------------------

(define make-missile (lambda (x y vx vy)
  (set "x" x (set "y" y (set "vx" vx (set "vy" vy (set "mode" "MOVING" (set "timer" 50 (new-map)))))))
))

(make-missile 100 200 5 0)