X-Git-Url: https://git.jsancho.org/?p=gacela.git;a=blobdiff_plain;f=src%2Fexamples%2Fentity-component-functions.scm;h=03617cacc647091153378231b0d53392e8b70016;hp=43316fc743647947e4cc8fdbd4d08d4987b9bb93;hb=b1ade28aa0eab723292491d20d5841e4cb8da37c;hpb=e4765bdf82f58cd028b190f75e8bb4be13099051 diff --git a/src/examples/entity-component-functions.scm b/src/examples/entity-component-functions.scm index 43316fc..03617ca 100644 --- a/src/examples/entity-component-functions.scm +++ b/src/examples/entity-component-functions.scm @@ -24,47 +24,32 @@ (define-component b) (define (entity-component-functions) - (let ((entities '()) - (components '()) + (let ((entities (make-entity-set)) (key #f)) - (receive (e c k) ((new-entity (make-a 1 2) (make-b)) entities components) + (receive (e k) ((new-entity (make-a 1 2) (make-b)) entities) (set! entities e) - (set! components c) - (set! key k) - (display k) (newline)) - (format #t "New entity with a and b:~%~a~%~a~%~%" entities components) + (set! key (car k))) + (format #t "New entity with a and b:~%~a~%~%" (entity-list entities)) - (receive (e c k) ((new-entity (make-a 10 20)) entities components) - (set! entities e) - (set! components c) - (display k) (newline)) - (format #t "New entity with a:~%~a~%~a~%~%" entities components) + (receive (e k) ((new-entity (make-a 10 20)) entities) + (set! entities e)) + (format #t "New entity with a:~%~a~%~%" (entity-list entities)) - (receive (e c) (modify-entities (list (set-entity-components key (make-a 50 50)) (remove-entity-components key 'b)) entities components) - (set! entities e) - (set! components c)) - (format #t "First entity removes b and changes a:~%~a~%~a~%~%" entities components) + (set! entities (modify-entities entities (list (set-entity-components key (make-a 50 50)) (remove-entity-components key 'b)))) + (format #t "First entity removes b and changes a:~%~a~%~%" (entity-list entities)) - (receive (e c) ((remove-entity key) entities components) - (set! entities e) - (set! components c)) - (format #t "Removes first entity:~%~a~%~a~%~%" entities components) + (set! entities ((remove-entity key) entities)) + (format #t "Removes first entity:~%~a~%~%" (entity-list entities)) - (receive (e c k) ((new-entity (make-a 1 2) (make-b)) entities components) + (receive (e k) ((new-entity (make-a 1 2) (make-b)) entities) (set! entities e) - (set! components c) - (set! key k) - (display k) (newline)) - (format #t "New entity with a and b:~%~a~%~a~%~%" entities components) + (set! key (car k))) + (format #t "New entity with a and b:~%~a~%~%" (entity-list entities)) - (receive (e c) (modify-entities (list (set-entity-components key (make-a 50 50)) (remove-entity-components key 'b) (new-entity (make-a 1000 1000))) entities components) - (set! entities e) - (set! components c)) - (format #t "Last entity removes b and changes a, and new entity with a:~%~a~%~a~%~%" entities components) + (set! entities (modify-entities entities (list (set-entity-components key (make-a 50 50)) (remove-entity-components key 'b) (new-entity (make-a 1000 1000))))) + (format #t "Last entity removes b and changes a, and new entity with a:~%~a~%~%" (entity-list entities)) - (receive (e c) (modify-entities (list (remove-entity key)) entities components) - (set! entities e) - (set! components c)) - (format #t "Remove last entity:~%~a~%~a~%~%" entities components))) + (set! entities (modify-entities entities (list (remove-entity key)))) + (format #t "Remove last entity:~%~a~%~%" (entity-list entities)))) (export entity-component-functions)