From 11cf7a9251ae51e0a689dcb70980e635845a99cd Mon Sep 17 00:00:00 2001 From: Marvin Blum Date: Fri, 6 May 2016 17:38:32 +0200 Subject: [PATCH] Added function to easily access loaded textures. --- ToDo.md | 1 + demo/sprite/sprite.go | 13 +++++++------ res_util.go | 23 +++++++++++++++++++++++ 3 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 res_util.go diff --git a/ToDo.md b/ToDo.md index 46558b9..e5cb454 100644 --- a/ToDo.md +++ b/ToDo.md @@ -4,3 +4,4 @@ * more logging * limit FPS * fullscreen +* simple access to default resources like GetTex() diff --git a/demo/sprite/sprite.go b/demo/sprite/sprite.go index a226371..97f7dfe 100644 --- a/demo/sprite/sprite.go +++ b/demo/sprite/sprite.go @@ -11,24 +11,25 @@ const ( type Game struct{} func (g *Game) Setup() { - res, err := goga.LoadRes(gopher_path) + // load texture + _, err := goga.LoadRes(gopher_path) if err != nil { panic(err) } - tex, ok := res.(*goga.Tex) + // create sprite + tex, err := goga.GetTex("gopher.png") - if !ok { - panic("Resource is not a texture") + if err != nil { + panic(err) } sprite := goga.NewSprite(tex) goga.AddActor(sprite) } -func (g *Game) Update(delta float64) { -} +func (g *Game) Update(delta float64) {} func main() { game := Game{} diff --git a/res_util.go b/res_util.go new file mode 100644 index 0000000..d4dd0e6 --- /dev/null +++ b/res_util.go @@ -0,0 +1,23 @@ +package goga + +import ( + "errors" +) + +// Finds and returns a Tex resource. +// If not found or when the resource is of wrong type, an error will be returned. +func GetTex(name string) (*Tex, error) { + res := GetResByName(name) + + if res == nil { + return nil, errors.New("Resource not found") + } + + tex, ok := res.(*Tex) + + if !ok { + return nil, errors.New("Resource was not of type *Tex") + } + + return tex, nil +}