Render background and electron for logic gates
This commit is contained in:
parent
793a9ef027
commit
815c3c809a
2 changed files with 18 additions and 22 deletions
34
game.scm
34
game.scm
|
@ -258,28 +258,26 @@
|
|||
(define (draw-exit pos)
|
||||
(draw-tile context tileset 27 (vec2-x pos) (vec2-y pos)))
|
||||
|
||||
(define (draw-wall pos type)
|
||||
(define (draw-wire-state pos state)
|
||||
(let ((x (vec2-x pos))
|
||||
(y (vec2-y pos)))
|
||||
(match type
|
||||
(match state
|
||||
('electron-head
|
||||
(draw-tile context tileset 4 x y))
|
||||
('electron-tail
|
||||
(draw-tile context tileset 5 x y))
|
||||
(_ #f))))
|
||||
|
||||
(define (draw-wall pos type)
|
||||
(draw-wire-state pos type))
|
||||
|
||||
(define (draw-block pos type)
|
||||
(let ((x (vec2-x pos))
|
||||
(y (vec2-y pos)))
|
||||
(match type
|
||||
('crate (draw-tile context tileset 29 x y))
|
||||
(_ (draw-tile context tileset 3 x y)))
|
||||
(match type
|
||||
('electron-head
|
||||
(draw-tile context tileset 4 x y))
|
||||
('electron-tail
|
||||
(draw-tile context tileset 5 x y))
|
||||
(_ #f))))
|
||||
(draw-wire-state pos type)))
|
||||
|
||||
(define (draw-clock-emitter pos)
|
||||
(draw-tile context tileset 48 (vec2-x pos) (vec2-y pos)))
|
||||
|
@ -293,14 +291,12 @@
|
|||
(define (draw-gate pos open?)
|
||||
(draw-tile context tileset (if open? 46 45) (vec2-x pos) (vec2-y pos)))
|
||||
|
||||
(define (draw-and-gate pos)
|
||||
(draw-tile context tileset 42 (vec2-x pos) (vec2-y pos)))
|
||||
|
||||
(define (draw-or-gate pos)
|
||||
(draw-tile context tileset 43 (vec2-x pos) (vec2-y pos)))
|
||||
|
||||
(define (draw-xor-gate pos)
|
||||
(draw-tile context tileset 44 (vec2-x pos) (vec2-y pos)))
|
||||
(define (draw-logic-gate pos state id)
|
||||
(let ((x (vec2-x pos))
|
||||
(y (vec2-y pos)))
|
||||
(draw-tile context tileset 2 x y)
|
||||
(draw-tile context tileset id x y)
|
||||
(draw-wire-state pos state)))
|
||||
|
||||
(define (draw-electric-switch pos on?)
|
||||
(draw-tile context tileset (if on? 7 6) (vec2-x pos) (vec2-y pos)))
|
||||
|
@ -316,9 +312,9 @@
|
|||
(('floor-switch pos on?) (draw-floor-switch pos on?))
|
||||
(('gem pos) (draw-gem pos))
|
||||
(('gate pos open?) (draw-gate pos open?))
|
||||
(('and-gate pos) (draw-and-gate pos))
|
||||
(('xor-gate pos) (draw-xor-gate pos))
|
||||
(('or-gate pos) (draw-or-gate pos))
|
||||
(('and-gate pos state) (draw-logic-gate pos state 42))
|
||||
(('or-gate pos state) (draw-logic-gate pos state 43))
|
||||
(('xor-gate pos state) (draw-logic-gate pos state 44))
|
||||
(('electric-switch pos on?) (draw-electric-switch pos on?))))
|
||||
|
||||
(define (draw-background)
|
||||
|
|
|
@ -273,7 +273,7 @@
|
|||
($ state 'electron-head))
|
||||
(_ ($ state 'copper))))))
|
||||
(('alive?) #t)
|
||||
(('describe) `(and-gate ,position))
|
||||
(('describe) `(and-gate ,position ,($ state)))
|
||||
(('collide other offset grid-info) #f)))
|
||||
|
||||
(define (^xor-gate bcom x y)
|
||||
|
@ -313,7 +313,7 @@
|
|||
($ state 'electron-head))
|
||||
(_ ($ state 'copper))))))
|
||||
(('alive?) #t)
|
||||
(('describe) `(xor-gate ,position))
|
||||
(('describe) `(xor-gate ,position ,($ state)))
|
||||
(('collide other offset grid-info) #f)))
|
||||
|
||||
(define (^or-gate bcom x y)
|
||||
|
@ -357,7 +357,7 @@
|
|||
($ state 'electron-head))
|
||||
(_ ($ state 'copper))))))
|
||||
(('alive?) #t)
|
||||
(('describe) `(or-gate ,position))
|
||||
(('describe) `(or-gate ,position ,($ state)))
|
||||
(('collide other offset grid-info) #f)))
|
||||
|
||||
(define (^player bcom x y)
|
||||
|
|
Loading…
Add table
Reference in a new issue