wiggle proof
This commit is contained in:
parent
d981990978
commit
4f0756cbe9
1 changed files with 30 additions and 12 deletions
42
main.scm
42
main.scm
|
@ -158,25 +158,39 @@
|
|||
(define (set-vector2-x! vec2 x) (ftype-set! Vector2 (x) vec2 (exact->inexact x)))
|
||||
(define (set-vector2-y! vec2 y) (ftype-set! Vector2 (y) vec2 (exact->inexact y)))
|
||||
|
||||
(define (vector2-x vec2) (ftype-ref Vector2 (x) vec2))
|
||||
(define (vector2-y vec2) (ftype-ref Vector2 (y) vec2))
|
||||
|
||||
(define (vector2 x y)
|
||||
(define vec2 (make-ftype-pointer Vector2 (foreign-alloc (ftype-sizeof Vector2))))
|
||||
(set-vector2-x! vec2 x)
|
||||
(set-vector2-y! vec2 y)
|
||||
vec2)
|
||||
|
||||
(define (vector2+-bin a b)
|
||||
(vector2 (+ (vector2-x a)
|
||||
(vector2-x b))
|
||||
(+ (vector2-y a)
|
||||
(vector2-y b))))
|
||||
|
||||
(define (vector2+ . vs)
|
||||
(fold-left vector2+-bin
|
||||
(vector2 0 0)
|
||||
vs))
|
||||
|
||||
; adapted from https://github.com/Yunoinsky/chez-raylib/blob/main/src/raylib.sls
|
||||
(define load-image
|
||||
(let ([f (foreign-procedure #f "LoadImage"
|
||||
(string)
|
||||
(& Image))])
|
||||
(case-lambda
|
||||
[(file-name)
|
||||
(let ([ret (make-ftype-pointer
|
||||
Image
|
||||
(foreign-alloc (ftype-sizeof Image)))])
|
||||
(f ret file-name)
|
||||
ret)]
|
||||
[(struct file-name) (f struct file-name) struct])))
|
||||
(let ([f (foreign-procedure #f "LoadImage"
|
||||
(string)
|
||||
(& Image))])
|
||||
(case-lambda
|
||||
[(file-name)
|
||||
(let ([ret (make-ftype-pointer
|
||||
Image
|
||||
(foreign-alloc (ftype-sizeof Image)))])
|
||||
(f ret file-name)
|
||||
ret)]
|
||||
[(struct file-name) (f struct file-name) struct])))
|
||||
|
||||
(define load-texture
|
||||
(let ([f (foreign-procedure #f "LoadTexture"
|
||||
|
@ -368,10 +382,11 @@
|
|||
gap
|
||||
gap))
|
||||
|
||||
(define *t* 0.0)
|
||||
(define (blit-from-skin skin rect pos)
|
||||
;; (display skin) (display " ") (display rect) (display " ") (display pos)
|
||||
;; (newline)
|
||||
(draw-texture-rec skin rect pos WHITE))
|
||||
(draw-texture-rec skin rect (vector2+ pos (vector2 (* (random 4) (sin *t*)) (* (random 4) (cos *t*)))) WHITE))
|
||||
|
||||
(define (blit-number skin n pos)
|
||||
(let ([rect (vector-ref number-rects n)])
|
||||
|
@ -443,9 +458,12 @@
|
|||
; with the actual game, we almost certainly don't have to redraw everything every time
|
||||
(until (window-should-close?)
|
||||
(set! h (+ 1 h))
|
||||
(set! *t* (+ *t* (get-frame-time)))
|
||||
(with-draw
|
||||
(clear-background (color-from-hsv h 1.0 1.0))
|
||||
(redraw-skin skin)))
|
||||
(unload-texture skin)
|
||||
(close-window)))
|
||||
|
||||
|
||||
; let's save playing with shaders for later
|
||||
|
|
Loading…
Reference in a new issue