100 lines
1.9 KiB
Scheme
100 lines
1.9 KiB
Scheme
(module (lose-screen) ()
|
|
(import scheme
|
|
(chicken base)
|
|
(chicken module)
|
|
raylib
|
|
(imugi core)
|
|
(imugi input)
|
|
(imugi scene)
|
|
(imugi math)
|
|
(imugi resource)
|
|
(imugi drawing)
|
|
(bd ui))
|
|
|
|
(define draw-player-sprite
|
|
(make-system
|
|
'draw-player-sprite
|
|
0
|
|
'global
|
|
'()
|
|
(lambda ()
|
|
(push-render-object 'screen
|
|
-1
|
|
(lambda ()
|
|
(draw-texture-2d
|
|
(vec 50 300)
|
|
(texture "../res/sprites/player/lose.png")
|
|
(make-color 1 1 1 1)))))))
|
|
|
|
(define draw-enemy-sprite
|
|
(make-system
|
|
'draw-enemy-sprite
|
|
0
|
|
'global
|
|
'()
|
|
(lambda ()
|
|
(push-render-object 'screen
|
|
-1
|
|
(lambda ()
|
|
(draw-texture-2d
|
|
(vec 500 300)
|
|
(texture "../res/sprites/enemy/win.png")
|
|
(make-color 1 1 1 1)))))))
|
|
|
|
(export lose-screen)
|
|
(define (lose-screen arena-scene menu-scene)
|
|
(play-sound (load-sound "../res/music/Lose.wav"))
|
|
(scene
|
|
|
|
push-actions
|
|
draw-labels
|
|
handle-buttons
|
|
draw-player-sprite
|
|
draw-enemy-sprite
|
|
|
|
(entity
|
|
(title
|
|
(vec
|
|
0
|
|
(/ (cdr (*window-size*))
|
|
6))
|
|
"You have lost!"
|
|
centered: (cons #t #f)))
|
|
|
|
(entity
|
|
(button
|
|
;; Roughly centered.
|
|
;; these are ugly, hardcoded values.
|
|
(vec (- (/ (car (*window-size*))
|
|
2)
|
|
50)
|
|
(- (/ (car (*window-size*))
|
|
2)
|
|
100))
|
|
;; Nested footer text
|
|
(footer
|
|
(vec 0 0) ;; this vec doesn't matter, it's overwritten internally
|
|
"Play Again?")
|
|
(lambda ()
|
|
((arena-scene menu-scene)))))
|
|
|
|
(entity
|
|
(button
|
|
;; Roughly centered.
|
|
;; these are ugly, hardcoded values.
|
|
(vec (- (/ (car (*window-size*))
|
|
2)
|
|
50)
|
|
(- (/ (car (*window-size*))
|
|
2)
|
|
170))
|
|
;; Nested footer text
|
|
(footer
|
|
(vec 0 0) ;; this vec doesn't matter, it's overwritten internally
|
|
"Back to Menu")
|
|
(lambda ()
|
|
((menu-scene
|
|
(lambda ()
|
|
((arena-scene menu-scene))))))))))
|
|
)
|
|
|