diff --git a/game.js b/game.js
index 47780a6..6d59abb 100644
--- a/game.js
+++ b/game.js
@@ -81,7 +81,12 @@ window.addEventListener("load", async () => {
translate: (ctx, x, y) => ctx.translate(x, y),
rotate: (ctx, angle) => ctx.rotate(angle),
setTransform: (ctx, a, b, c, d, e, f) => ctx.setTransform(a, b, c, d, e, f),
- setImageSmoothingEnabled: (ctx, enabled) => ctx.imageSmoothingEnabled = (enabled == 1)
+ setImageSmoothingEnabled: (ctx, enabled) => ctx.imageSmoothingEnabled = (enabled == 1),
+ measureText: (ctx, text) => ctx.measureText(text),
+ },
+ textMetrics: {
+ actualBoundingBoxAscent: (metrics) => metrics.actualBoundingBoxAscent,
+ actualBoundingBoxDescent: (metrics) => metrics.actualBoundingBoxDescent,
},
math: {
random: () => Math.random()
diff --git a/game.scm b/game.scm
index 493aa18..d51b675 100644
--- a/game.scm
+++ b/game.scm
@@ -20,6 +20,7 @@
;;; Code:
(use-modules (dom canvas)
+ (dom text-metrics)
(dom document)
(dom element)
(dom event)
@@ -62,7 +63,8 @@
(math)
(math rect)
(math vector)
- (scheme base))
+ (scheme base)
+ (srfi srfi-1))
(define game-width 320.0)
(define game-height 240.0)
@@ -225,14 +227,6 @@
(set! *level* ((vector-ref levels idx) (collected-gem? idx)))
(update-objects!)))
-(define (load-credits!)
- (replace-game-state! 'credits)
- (set! *actormap* (make-whactormap))
- (set-vec2-y! *credits-scroll* 0.0)
- (clear-snapshots!)
- (with-goblins
- (set! *level* (load-credits #f))
- (update-objects!)))
(define (load-level! idx)
;; TODO: Maybe show a little achievement popup when all gems
@@ -287,6 +281,8 @@
(set-level! *level-idx*)
(media-play audio:bg-music)))))
+(define text-offset-y (* 0.75 tile-height))
+
;; Menu types
(define-record-type