mirror of
https://github.com/Kugelschieber/go-game.git
synced 2026-01-18 06:40:28 +00:00
Added keyframe animation and demo.
This commit is contained in:
BIN
demo/keyframe/assets/runningcat.png
Normal file
BIN
demo/keyframe/assets/runningcat.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 156 KiB |
60
demo/keyframe/keyframe.go
Normal file
60
demo/keyframe/keyframe.go
Normal file
@@ -0,0 +1,60 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/DeKugelschieber/go-game"
|
||||
)
|
||||
|
||||
const (
|
||||
assets_dir = "src/github.com/DeKugelschieber/go-game/demo/keyframe/assets"
|
||||
)
|
||||
|
||||
type Game struct{}
|
||||
|
||||
func (g *Game) Setup() {
|
||||
err := goga.LoadResFromFolder(assets_dir)
|
||||
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
tex, err := goga.GetTex("runningcat.png")
|
||||
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
// create a keyframe set
|
||||
set := goga.NewKeyframeSet()
|
||||
set.Add(goga.NewKeyframe(goga.Vec2{0, 0}, goga.Vec2{0.5, 0.25}))
|
||||
set.Add(goga.NewKeyframe(goga.Vec2{0.5, 0}, goga.Vec2{1, 0.25}))
|
||||
set.Add(goga.NewKeyframe(goga.Vec2{0, 0.25}, goga.Vec2{0.5, 0.5}))
|
||||
set.Add(goga.NewKeyframe(goga.Vec2{0.5, 0.25}, goga.Vec2{1, 0.5}))
|
||||
set.Add(goga.NewKeyframe(goga.Vec2{0, 0.5}, goga.Vec2{0.5, 0.75}))
|
||||
set.Add(goga.NewKeyframe(goga.Vec2{0.5, 0.5}, goga.Vec2{1, 0.75}))
|
||||
set.Add(goga.NewKeyframe(goga.Vec2{0, 0.75}, goga.Vec2{0.5, 1}))
|
||||
set.Add(goga.NewKeyframe(goga.Vec2{0.5, 0.75}, goga.Vec2{1, 1}))
|
||||
|
||||
// create a new animated sprite
|
||||
sprite := goga.NewAnimatedSprite(tex, set, 512, 256)
|
||||
sprite.KeyframeAnimation = goga.NewKeyframeAnimation(0, 7, true, 20)
|
||||
|
||||
// add to renderer
|
||||
renderer, ok := goga.GetSystemByName("keyframeRenderer").(*goga.KeyframeRenderer)
|
||||
|
||||
if !ok {
|
||||
panic("Could not find renderer")
|
||||
}
|
||||
|
||||
renderer.Add(sprite.Actor, sprite.Pos2D, sprite.Tex, sprite.KeyframeSet, sprite.KeyframeAnimation)
|
||||
}
|
||||
|
||||
func (g *Game) Update(delta float64) {}
|
||||
|
||||
func main() {
|
||||
game := Game{}
|
||||
options := goga.RunOptions{ClearColor: goga.Vec4{0, 0, 0, 0},
|
||||
Resizable: true,
|
||||
SetViewportOnResize: true,
|
||||
ExitOnClose: true}
|
||||
goga.Run(&game, &options)
|
||||
}
|
||||
Reference in New Issue
Block a user