Rotate logic gate sprites based on direction.

This commit is contained in:
Juliana Sims 2024-05-23 16:08:25 -04:00 committed by David Thompson
parent 00df10dc12
commit bb4d2df5f5
5 changed files with 33 additions and 5 deletions

View file

@ -317,6 +317,15 @@
(hashtable-set! cache x str)
str)))))
(define (draw-rotated-tile id pos angle)
(let ((hw (* tile-width 0.5))
(hh (* tile-height 0.5)))
(save! context)
(translate! context (+ (vec2-x pos) hw) (+ (vec2-y pos) hh))
(rotate! context angle)
(draw-tile context tileset id (- hw) (- hh))
(restore! context)))
(define (draw-player pos alive?)
(draw-tile context tileset (if alive? 0 20) (vec2-x pos) (vec2-y pos)))
@ -368,7 +377,11 @@
(let ((x (vec2-x pos))
(y (vec2-y pos)))
(draw-tile context tileset 2 x y)
(draw-tile context tileset id x y)
(match direction
('right (draw-tile context tileset id x y))
('left (draw-rotated-tile id pos pi))
('up (draw-rotated-tile id pos (* pi 1.5)))
('down (draw-rotated-tile id pos (* pi 0.5))))
(draw-wire-state pos state)))
(define (draw-electric-switch pos on?)