Systems, bug fixes, and first samples

This commit is contained in:
BirDt_ 2026-04-12 21:36:50 +08:00
parent df700e757b
commit d9f8f6f0d2
3 changed files with 96 additions and 21 deletions

53
samples/bounce.scm Normal file
View file

@ -0,0 +1,53 @@
(module (bounce) ()
(import scheme
(chicken base)
raylib
(engine core)
(engine components core)
(srfi 1))
(*window-title* "Bounce!")
(*target-fps* 60)
(add-system
(make-system 'draw-circles
0
'entity
'(<visual-2d> <screen-transform>)
(lambda (ball)
(let ((vis-2d (find visual-2d? ball))
(transform (find screen-transform? ball)))
(when (circle-2d? (visual-2d-draw vis-2d))
(let ((circle (visual-2d-draw vis-2d)))
(push-render-object 'screen
(visual-2d-layer vis-2d)
(lambda ()
((if (circle-2d-filled? circle)
draw-circle
draw-circle-lines)
(+ (vector-x (position transform))
(vector-x (circle-2d-center circle)))
(+ (vector-y (position transform))
(vector-y (circle-2d-center circle)))
(circle-2d-radius circle)
(use-color (visual-2d-color vis-2d)))))))))))
(create-entity
(make-visual-2d
(make-circle-2d
(make-vector2 0 0)
50
#t)
(make-color 0 0 1 1)
0)
(make-screen-transform
(make-vector2 100 100)
(make-vector2 0 0)
0
(make-vector2 1 1)
'center
'none))
(create-window)
)