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)
|
(define (draw-exit pos)
|
||||||
(draw-tile context tileset 27 (vec2-x pos) (vec2-y 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))
|
(let ((x (vec2-x pos))
|
||||||
(y (vec2-y pos)))
|
(y (vec2-y pos)))
|
||||||
(match type
|
(match state
|
||||||
('electron-head
|
('electron-head
|
||||||
(draw-tile context tileset 4 x y))
|
(draw-tile context tileset 4 x y))
|
||||||
('electron-tail
|
('electron-tail
|
||||||
(draw-tile context tileset 5 x y))
|
(draw-tile context tileset 5 x y))
|
||||||
(_ #f))))
|
(_ #f))))
|
||||||
|
|
||||||
|
(define (draw-wall pos type)
|
||||||
|
(draw-wire-state pos type))
|
||||||
|
|
||||||
(define (draw-block pos type)
|
(define (draw-block pos type)
|
||||||
(let ((x (vec2-x pos))
|
(let ((x (vec2-x pos))
|
||||||
(y (vec2-y pos)))
|
(y (vec2-y pos)))
|
||||||
(match type
|
(match type
|
||||||
('crate (draw-tile context tileset 29 x y))
|
('crate (draw-tile context tileset 29 x y))
|
||||||
(_ (draw-tile context tileset 3 x y)))
|
(_ (draw-tile context tileset 3 x y)))
|
||||||
(match type
|
(draw-wire-state pos type)))
|
||||||
('electron-head
|
|
||||||
(draw-tile context tileset 4 x y))
|
|
||||||
('electron-tail
|
|
||||||
(draw-tile context tileset 5 x y))
|
|
||||||
(_ #f))))
|
|
||||||
|
|
||||||
(define (draw-clock-emitter pos)
|
(define (draw-clock-emitter pos)
|
||||||
(draw-tile context tileset 48 (vec2-x pos) (vec2-y pos)))
|
(draw-tile context tileset 48 (vec2-x pos) (vec2-y pos)))
|
||||||
|
@ -293,14 +291,12 @@
|
||||||
(define (draw-gate pos open?)
|
(define (draw-gate pos open?)
|
||||||
(draw-tile context tileset (if open? 46 45) (vec2-x pos) (vec2-y pos)))
|
(draw-tile context tileset (if open? 46 45) (vec2-x pos) (vec2-y pos)))
|
||||||
|
|
||||||
(define (draw-and-gate pos)
|
(define (draw-logic-gate pos state id)
|
||||||
(draw-tile context tileset 42 (vec2-x pos) (vec2-y pos)))
|
(let ((x (vec2-x pos))
|
||||||
|
(y (vec2-y pos)))
|
||||||
(define (draw-or-gate pos)
|
(draw-tile context tileset 2 x y)
|
||||||
(draw-tile context tileset 43 (vec2-x pos) (vec2-y pos)))
|
(draw-tile context tileset id x y)
|
||||||
|
(draw-wire-state pos state)))
|
||||||
(define (draw-xor-gate pos)
|
|
||||||
(draw-tile context tileset 44 (vec2-x pos) (vec2-y pos)))
|
|
||||||
|
|
||||||
(define (draw-electric-switch pos on?)
|
(define (draw-electric-switch pos on?)
|
||||||
(draw-tile context tileset (if on? 7 6) (vec2-x pos) (vec2-y pos)))
|
(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?))
|
(('floor-switch pos on?) (draw-floor-switch pos on?))
|
||||||
(('gem pos) (draw-gem pos))
|
(('gem pos) (draw-gem pos))
|
||||||
(('gate pos open?) (draw-gate pos open?))
|
(('gate pos open?) (draw-gate pos open?))
|
||||||
(('and-gate pos) (draw-and-gate pos))
|
(('and-gate pos state) (draw-logic-gate pos state 42))
|
||||||
(('xor-gate pos) (draw-xor-gate pos))
|
(('or-gate pos state) (draw-logic-gate pos state 43))
|
||||||
(('or-gate pos) (draw-or-gate pos))
|
(('xor-gate pos state) (draw-logic-gate pos state 44))
|
||||||
(('electric-switch pos on?) (draw-electric-switch pos on?))))
|
(('electric-switch pos on?) (draw-electric-switch pos on?))))
|
||||||
|
|
||||||
(define (draw-background)
|
(define (draw-background)
|
||||||
|
|
|
@ -273,7 +273,7 @@
|
||||||
($ state 'electron-head))
|
($ state 'electron-head))
|
||||||
(_ ($ state 'copper))))))
|
(_ ($ state 'copper))))))
|
||||||
(('alive?) #t)
|
(('alive?) #t)
|
||||||
(('describe) `(and-gate ,position))
|
(('describe) `(and-gate ,position ,($ state)))
|
||||||
(('collide other offset grid-info) #f)))
|
(('collide other offset grid-info) #f)))
|
||||||
|
|
||||||
(define (^xor-gate bcom x y)
|
(define (^xor-gate bcom x y)
|
||||||
|
@ -313,7 +313,7 @@
|
||||||
($ state 'electron-head))
|
($ state 'electron-head))
|
||||||
(_ ($ state 'copper))))))
|
(_ ($ state 'copper))))))
|
||||||
(('alive?) #t)
|
(('alive?) #t)
|
||||||
(('describe) `(xor-gate ,position))
|
(('describe) `(xor-gate ,position ,($ state)))
|
||||||
(('collide other offset grid-info) #f)))
|
(('collide other offset grid-info) #f)))
|
||||||
|
|
||||||
(define (^or-gate bcom x y)
|
(define (^or-gate bcom x y)
|
||||||
|
@ -357,7 +357,7 @@
|
||||||
($ state 'electron-head))
|
($ state 'electron-head))
|
||||||
(_ ($ state 'copper))))))
|
(_ ($ state 'copper))))))
|
||||||
(('alive?) #t)
|
(('alive?) #t)
|
||||||
(('describe) `(or-gate ,position))
|
(('describe) `(or-gate ,position ,($ state)))
|
||||||
(('collide other offset grid-info) #f)))
|
(('collide other offset grid-info) #f)))
|
||||||
|
|
||||||
(define (^player bcom x y)
|
(define (^player bcom x y)
|
||||||
|
|
Loading…
Add table
Reference in a new issue