Esset je základný implementátor materiálov pre ebitengine.
Najskôr spustite go get github.com/temidaradev/esset
a vytvorte priečinok pre materiály ak ju ešte nemáte. Po vytvorení priečinka umiestnite .png materiály do priečinka a vytvorte assets.go
. Potom pridajte
//go:embed *
var assets embed.FS
tento embed príkaz hneď po import časti. Teraz už môžete používať esset ako váš implementátor materiálov. Vyžaduje to 2 parametre z vášho embed príkazu a potom váš "asset.png"
.
Tu je príklad: var Idle = esset.GetAsset(assets, "path/to/your/asset.png")
Dôležité je vytvoriť priečinok a umiestniť každú jednotlivú dlaždicu (.png) takto
a potom môžete jednoducho použiť túto funkciu takto: var Tile = esset.GetMultipleAssets(assets, "path/to/your/*.png")
Kedže vyberáte viac ako 1 obraz, náš *ebiten.Image
je pole z ktorého môžete vyberať podľa indexu takto: TileComponent := assets.Tile[0]
, alebo ak vám treba získať náhodný materiál z toho priečinka tak môžete takto: TileRandom := assets.Tile[rand.Intn(len(assets.Tile))]
Pre fonty musíte vkladať fonty samostatne a mali by ste pridať premennú text.Face
takto:
//go:embed path/to/your/font.ttf
var MyFont []byte
var FontFaceS text.Face
var FontFaceM text.Face
var FontFaceM text.Face
Potom, aby ste nenačítali písmo zakaždým, mali by ste vložiť funkciu GetFont()
do funkcie init()
, ktorá je vo vašom hlavnom súbore (obsahuje Game{}
) takto:
func init() {
assets.FontFaceS, _ = esset.GetFont(assets.MyFont, 48)
}
Po nastavení funkcie GetFont()
ste pripravení použiť funkciu DrawText()
Na to nie je potrebné vytvárať špeciálne možnosti DrawOptions. Len (screen, text, font size, posX, posY, text.Face, color)
Funkciu esset.DrawText
môžete použiť takto: esset.DrawText(screen, "wassup", 16, 100, 50, assets.FontFaceS, color.White)
Veľmi vďaka pre @m110 za podporu so zdrojom <3