From 47b6ac05a7efd7399c17f264d6e5cf76e4eb576c Mon Sep 17 00:00:00 2001 From: Ahmet Affan Date: Wed, 13 Nov 2024 15:44:30 +0300 Subject: [PATCH] multi asset and font --- esset.go | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/esset.go b/esset.go index 36adab9..cc17cf6 100644 --- a/esset.go +++ b/esset.go @@ -4,13 +4,16 @@ import ( "embed" "image" _ "image/png" + "io/fs" "log" "github.com/hajimehoshi/ebiten/v2" + "golang.org/x/image/font" + "golang.org/x/image/font/opentype" ) -func GetSingleAsset(fs embed.FS, name string) *ebiten.Image { - file, err := fs.Open(name) +func GetAsset(efs embed.FS, path string) *ebiten.Image { + file, err := efs.Open(path) if err != nil { log.Fatal(err) } @@ -22,3 +25,40 @@ func GetSingleAsset(fs embed.FS, name string) *ebiten.Image { return ebiten.NewImageFromImage(img) } + +func GetMultiAssets(efs embed.FS, path string) []*ebiten.Image { + matches, err := fs.Glob(efs, path) + if err != nil { + panic(err) + } + + images := make([]*ebiten.Image, len(matches)) + for i, match := range matches { + images[i] = GetAsset(efs, match) + } + + return images +} + +func GetFont(efs embed.FS, name string) font.Face { + f, err := efs.ReadFile(name) + if err != nil { + panic(err) + } + + tt, err := opentype.Parse(f) + if err != nil { + panic(err) + } + + face, err := opentype.NewFace(tt, &opentype.FaceOptions{ + Size: 48, + DPI: 72, + Hinting: font.HintingVertical, + }) + if err != nil { + panic(err) + } + + return face +}