Render sprites from sprite sheets (no animation yet)

This commit is contained in:
stevenhowes
2022-01-17 22:36:05 +00:00
parent fa13e4c97b
commit 2bf460b999
5 changed files with 80 additions and 5 deletions
+56
View File
@@ -0,0 +1,56 @@
package GoRetro
/*
* --------------------
* spriteSheetRenderer
* --------------------
*/
import (
"github.com/veandco/go-sdl2/sdl"
)
type spriteSheetRenderer struct {
container *Element
tex *sdl.Texture
size VectorInt32
sheetposition VectorInt32
}
func NewSpriteSheetRenderer(container *Element, renderer *sdl.Renderer, filename string, x int32, y int32, width int32, height int32) *spriteSheetRenderer {
sr := &spriteSheetRenderer{}
var err error
filename = Config.DataDir + filename
sr.tex, err = loadTextureFromBMP(filename, renderer)
if err != nil {
panic(err)
}
sr.size.X = width
sr.size.Y = height
sr.sheetposition.X = x
sr.sheetposition.Y = y
sr.container = container
return sr
}
func (sr *spriteSheetRenderer) onUpdate() error {
return nil
}
func (sr *spriteSheetRenderer) onDraw() error {
return drawTexture(
sr.tex,
sr.size,
sr.sheetposition,
sr.container.Position,
sr.container.Rotation,
sr.container.Renderer)
}
func (sr *spriteSheetRenderer) onCollision(other *Element) error {
return nil
}