本文整理汇总了Golang中golang.org/x/mobile/exp/sprite.Node.Arranger方法的典型用法代码示例。如果您正苦于以下问题:Golang Node.Arranger方法的具体用法?Golang Node.Arranger怎么用?Golang Node.Arranger使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类golang.org/x/mobile/exp/sprite.Node
的用法示例。
在下文中一共展示了Node.Arranger方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: updateNode
func (e *WritableEngine) updateNode(n *sprite.Node) {
if n.Arranger != nil {
if _, ok := n.Arranger.(*arranger); !ok {
n.Arranger = &arranger{e, n.Arranger}
}
}
e.n[n].Parent = e.n[n.Parent]
e.n[n].FirstChild = e.n[n.FirstChild]
e.n[n].LastChild = e.n[n.LastChild]
e.n[n].PrevSibling = e.n[n.PrevSibling]
e.n[n].NextSibling = e.n[n.NextSibling]
}
示例2: loadScene
func loadScene() {
texs := loadTextures()
scene = &sprite.Node{}
eng.Register(scene)
eng.SetTransform(scene, f32.Affine{
{1, 0, 0},
{0, 1, 0},
})
var n *sprite.Node
n = newNode()
eng.SetSubTex(n, texs[texBooks])
eng.SetTransform(n, f32.Affine{
{36, 0, 0},
{0, 36, 0},
})
n = newNode()
eng.SetSubTex(n, texs[texFire])
eng.SetTransform(n, f32.Affine{
{72, 0, 144},
{0, 72, 144},
})
n = newNode()
n.Arranger = arrangerFunc(func(eng sprite.Engine, n *sprite.Node, t clock.Time) {
// TODO: use a tweening library instead of manually arranging.
t0 := uint32(t) % 120
if t0 < 60 {
eng.SetSubTex(n, texs[texGopherR])
} else {
eng.SetSubTex(n, texs[texGopherL])
}
u := float32(t0) / 120
u = (1 - f32.Cos(u*2*math.Pi)) / 2
tx := 18 + u*48
ty := 36 + u*108
sx := 36 + u*36
sy := 36 + u*36
eng.SetTransform(n, f32.Affine{
{sx, 0, tx},
{0, sy, ty},
})
})
}