syndicate-2017/prospect-gl/examples/basic.rkt

69 lines
3.6 KiB
Racket
Raw Normal View History

2015-09-09 00:11:16 +00:00
#lang racket
(require prospect)
(require 2htdp/image)
(require "../2d.rkt")
(define window-projection (compile-projection (at-meta (?! (window ? ?)))))
(2d-world (spawn (lambda (e s)
(match e
[(? patch? p)
(define-values (added removed) (patch-project/set/single p window-projection))
(transition s (for/list [(w added)]
(match-define (window width height) w)
2015-09-09 15:44:42 +00:00
(update-scene `((push-matrix (scale ,width ,(* height 2))
(translate 0 -0.25)
(texture
,(overlay/xy (rectangle 1 1 "solid" "white")
0 0
(rectangle 1 2 "solid" "black"))))
2015-09-09 00:25:55 +00:00
;; (rotate -30)
;; (scale 5 5)
)
2015-09-09 00:11:16 +00:00
`())))]
[_ #f]))
(void)
(sub (window ? ?) #:meta-level 1)
;; (assert 'fullscreen #:meta-level 1)
)
2015-09-09 00:23:02 +00:00
(let ((move-to (lambda (x y)
(transition (list x y)
(update-sprites (simple-sprite 0 x y 10 10 (rectangle 1 1 "solid" "blue")))))))
(spawn (lambda (e s)
(match-define (list x y) s)
(match e
[(message (at-meta (key-event 'left _))) (move-to (- x 2) y)]
[(message (at-meta (key-event 'right _))) (move-to (+ x 2) y)]
[(message (at-meta (key-event 'up _))) (move-to x (- y 2))]
[(message (at-meta (key-event 'down _))) (move-to x (+ y 2))]
[_ #f]))
(list 100 100)
(update-sprites (simple-sprite -0.5 100 100 10 10 (rectangle 1 1 "solid" "blue")))
(sub (key-event ? ?) #:meta-level 1)))
2015-09-09 00:11:16 +00:00
(spawn (lambda (e s) #f)
(void)
2015-09-09 00:15:52 +00:00
(update-sprites (simple-sprite 0 50 50 50 50 (circle 50 "solid" "orange"))
(simple-sprite -1 60 60 50 50 (circle 50 "solid" "green"))))
2015-09-09 15:03:30 +00:00
(spawn (lambda (e s)
(match e
[(message (at-meta (frame-event counter elapsed-ms)))
(and (> elapsed-ms 0)
(let ((i (text (format "~a fps" (/ counter (/ elapsed-ms 1000.0))) 22 "black")))
(transition s (update-sprites (simple-sprite -10 300 10
(image-width i)
(image-height i)
i)))))]
[_ #f]))
(void)
(sub (frame-event ? ?) #:meta-level 1))
2015-09-09 00:11:16 +00:00
(spawn (lambda (e s)
(match e
[(message _)
(transition s (assert 'stop #:meta-level 1))]
[_ #f]))
(void)
(sub (key-event #\q ?) #:meta-level 1))
)
(exit 0)