2021-10-28 03:52:02 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"image"
|
|
|
|
_ "image/png"
|
|
|
|
|
|
|
|
"github.com/hajimehoshi/ebiten/v2"
|
|
|
|
)
|
|
|
|
|
|
|
|
var ojasDungeonSS *OjasDungeonSpriteSheet
|
|
|
|
|
|
|
|
// OjasDungeonSpriteSheet represents a collection of sprite images.
|
|
|
|
type OjasDungeonSpriteSheet struct {
|
|
|
|
Grass11 *ebiten.Image
|
|
|
|
Grass12 *ebiten.Image
|
|
|
|
Grass13 *ebiten.Image
|
|
|
|
Grass14 *ebiten.Image
|
|
|
|
Grass15 *ebiten.Image
|
|
|
|
Grass16 *ebiten.Image
|
|
|
|
Grass21 *ebiten.Image
|
|
|
|
Grass31 *ebiten.Image
|
|
|
|
Grass41 *ebiten.Image
|
|
|
|
Grass42 *ebiten.Image
|
|
|
|
Grass51 *ebiten.Image
|
|
|
|
Grass61 *ebiten.Image
|
|
|
|
Grass71 *ebiten.Image
|
|
|
|
Grass81 *ebiten.Image
|
|
|
|
Grass82 *ebiten.Image
|
|
|
|
Grass91 *ebiten.Image
|
2021-10-29 15:49:27 +00:00
|
|
|
Soul1 *ebiten.Image
|
2021-10-28 03:52:02 +00:00
|
|
|
Wall1 *ebiten.Image
|
|
|
|
Vent1 *ebiten.Image
|
|
|
|
Door11 *ebiten.Image
|
|
|
|
Door12 *ebiten.Image
|
|
|
|
}
|
|
|
|
|
|
|
|
// LoadOjasDungeonSpriteSheet loads the embedded PlayerSpriteSheet.
|
|
|
|
func LoadOjasDungeonSpriteSheet() (*OjasDungeonSpriteSheet, error) {
|
|
|
|
tileSize := 32
|
|
|
|
|
|
|
|
f, err := assetsFS.Open("assets/ojas-dungeon/dungeon-tileset-1.png")
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
img, _, err := image.Decode(f)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
sheet := ebiten.NewImageFromImage(img)
|
|
|
|
|
|
|
|
// spriteAt returns a sprite at the provided coordinates.
|
|
|
|
spriteAt := func(x, y int) *ebiten.Image {
|
|
|
|
return sheet.SubImage(image.Rect(x*tileSize, (y+1)*tileSize, (x+1)*tileSize, y*tileSize)).(*ebiten.Image)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Populate spritesheet.
|
|
|
|
s := &OjasDungeonSpriteSheet{}
|
|
|
|
s.Grass11 = spriteAt(7, 7)
|
|
|
|
s.Grass12 = spriteAt(8, 7)
|
|
|
|
s.Grass13 = spriteAt(9, 7)
|
|
|
|
s.Grass14 = spriteAt(10, 7)
|
|
|
|
s.Grass15 = spriteAt(11, 7)
|
|
|
|
s.Grass16 = spriteAt(12, 7)
|
|
|
|
s.Grass21 = spriteAt(10, 8)
|
|
|
|
s.Grass31 = spriteAt(10, 9)
|
|
|
|
s.Grass41 = spriteAt(15, 9)
|
|
|
|
s.Grass42 = spriteAt(10, 10)
|
|
|
|
s.Grass51 = spriteAt(10, 11)
|
|
|
|
s.Grass61 = spriteAt(10, 12)
|
|
|
|
s.Grass71 = spriteAt(10, 13)
|
|
|
|
s.Grass81 = spriteAt(14, 11)
|
|
|
|
s.Grass82 = spriteAt(10, 14)
|
|
|
|
s.Grass91 = spriteAt(10, 15)
|
2021-10-29 15:49:27 +00:00
|
|
|
s.Soul1 = spriteAt(8, 11)
|
2021-10-28 03:52:02 +00:00
|
|
|
s.Wall1 = spriteAt(7, 5)
|
|
|
|
s.Vent1 = spriteAt(9, 13)
|
|
|
|
s.Door11 = spriteAt(3, 6)
|
|
|
|
s.Door12 = spriteAt(3, 7)
|
|
|
|
|
|
|
|
return s, nil
|
|
|
|
}
|