2
0
mirror of synced 2025-02-22 14:28:14 +00:00

x/mobile/example/sprite: use SubTex in example

Fixes golang/go#9107

LGTM=nigeltao
R=nigeltao
CC=golang-codereviews, yliu
https://golang.org/cl/177800043
This commit is contained in:
David Crawshaw 2014-11-16 09:59:23 -05:00
parent 10b4dcd412
commit 0df569094b

View File

@ -72,7 +72,7 @@ func loadScene() {
texs := loadTextures() texs := loadTextures()
scene = &sprite.Node{} scene = &sprite.Node{}
eng.Register(scene) eng.Register(scene)
eng.SetTransform(scene, 0, f32.Affine{ eng.SetTransform(scene, f32.Affine{
{1, 0, 0}, {1, 0, 0},
{0, 1, 0}, {0, 1, 0},
}) })
@ -80,15 +80,15 @@ func loadScene() {
var n *sprite.Node var n *sprite.Node
n = newNode() n = newNode()
eng.SetTexture(n, 0, texs[texBooks]) eng.SetSubTex(n, texs[texBooks])
eng.SetTransform(n, 0, f32.Affine{ eng.SetTransform(n, f32.Affine{
{36, 0, 0}, {36, 0, 0},
{0, 36, 0}, {0, 36, 0},
}) })
n = newNode() n = newNode()
eng.SetTexture(n, 0, texs[texFire]) eng.SetSubTex(n, texs[texFire])
eng.SetTransform(n, 0, f32.Affine{ eng.SetTransform(n, f32.Affine{
{72, 0, 144}, {72, 0, 144},
{0, 72, 144}, {0, 72, 144},
}) })
@ -98,9 +98,9 @@ func loadScene() {
// TODO: use a tweening library instead of manually arranging. // TODO: use a tweening library instead of manually arranging.
t0 := uint32(t) % 120 t0 := uint32(t) % 120
if t0 < 60 { if t0 < 60 {
eng.SetTexture(n, t, texs[texGopherR]) eng.SetSubTex(n, texs[texGopherR])
} else { } else {
eng.SetTexture(n, t, texs[texGopherL]) eng.SetSubTex(n, texs[texGopherL])
} }
u := float32(t0) / 120 u := float32(t0) / 120
@ -110,7 +110,7 @@ func loadScene() {
ty := 36 + u*108 ty := 36 + u*108
sx := 36 + u*36 sx := 36 + u*36
sy := 36 + u*36 sy := 36 + u*36
eng.SetTransform(n, t, f32.Affine{ eng.SetTransform(n, f32.Affine{
{sx, 0, tx}, {sx, 0, tx},
{0, sy, ty}, {0, sy, ty},
}) })
@ -124,7 +124,7 @@ const (
texGopherL texGopherL
) )
func loadTextures() (ret []sprite.Texture) { func loadTextures() []sprite.SubTex {
f, err := os.Open("../../testdata/waza-gophers.jpeg") f, err := os.Open("../../testdata/waza-gophers.jpeg")
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
@ -134,26 +134,17 @@ func loadTextures() (ret []sprite.Texture) {
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
sheet, err := eng.LoadSheet(img) t, err := eng.LoadTexture(img)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
bounds := []image.Rectangle{ return []sprite.SubTex{
texBooks: image.Rect(4, 71, 132, 182), texBooks: sprite.SubTex{t, image.Rect(4, 71, 132, 182)},
texFire: image.Rect(330, 56, 440, 155), texFire: sprite.SubTex{t, image.Rect(330, 56, 440, 155)},
texGopherR: image.Rect(152, 10, 152+140, 10+90), texGopherR: sprite.SubTex{t, image.Rect(152, 10, 152+140, 10+90)},
texGopherL: image.Rect(162, 120, 162+140, 120+90), texGopherL: sprite.SubTex{t, image.Rect(162, 120, 162+140, 120+90)},
} }
for _, b := range bounds {
tex, err := eng.LoadTexture(sheet, b)
if err != nil {
log.Fatal(err)
}
ret = append(ret, tex)
}
return ret
} }
type arrangerFunc func(e sprite.Engine, n *sprite.Node, t clock.Time) type arrangerFunc func(e sprite.Engine, n *sprite.Node, t clock.Time)