assetbundling/

directory
v1.0.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 14, 2022 License: MIT

README

Asset Bundling Demo

What does it do?

It demonstrates how one can bundle assets into their binary to reduce distribution complexity

What are important aspects of the code?

These lines are key in this demo:

  • import _ "github.com/go-bindata/go-bindata" to track go-bindata in go.mod
  • //go:generate go-bindata -pkg=assets ./... to setup the go generate tool
  • data, err := assets.Asset(file) to retrieve a bundled asset
  • err = engo.Files.LoadReaderData(file, bytes.NewReader(data)) to load it into engo.Files

Load each file in a list

func (s *GameScene) Preload() {
	files := []string{
		"tilemap.tmx",
		"sprites.png,
	}
	for _, file := range files {
		data, err := assets.Asset(file)
		if err != nil {
			log.Fatalf("Unable to locate asset with URL: %v\n", file)
		}
		err = engo.Files.LoadReaderData(file, bytes.NewReader(data))
		if err != nil {
			log.Fatalf("Unable to load asset with URL: %v\n", file)
		}
	}
}

Setup a bundler go file to use go generate

assets/assets.go

//!build

package assets

import (
	// go-bindata required for code generation
	_ "github.com/go-bindata/go-bindata"
)

//go:generate go-bindata -pkg=assets ./...
//go:generate gofmt -s -w .

Directories

Path Synopsis
Code generated for package assets by go-bindata DO NOT EDIT.
Code generated for package assets by go-bindata DO NOT EDIT.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL