From 21406a1bfb3ab2922f11ce8d843f81fb03c35664 Mon Sep 17 00:00:00 2001 From: mollusk Date: Tue, 16 Jan 2018 20:27:09 -0700 Subject: [PATCH] Rotate sprite dynamically using delta time --- main.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index c40a079..f2f8c44 100644 --- a/main.go +++ b/main.go @@ -5,6 +5,7 @@ import ( "image" _ "image/png" "os" + "time" "github.com/faiface/pixel" "github.com/faiface/pixel/pixelgl" @@ -37,6 +38,7 @@ func run() { panic(err) } + win.SetSmooth(true) pic, err := loadPicture("hiking.png") if err != nil { panic(err) @@ -44,10 +46,21 @@ func run() { sprite := pixel.NewSprite(pic, pic.Bounds()) - win.Clear(colornames.Skyblue) - sprite.Draw(win, pixel.IM.Moved(win.Bounds().Center())) + angle := 0.0 + last := time.Now() for !win.Closed() { + dt := time.Since(last).Seconds() + last = time.Now() + + angle += 3 * dt + + win.Clear(colornames.Firebrick) + + mat := pixel.IM + mat = mat.Rotated(pixel.ZV, angle) + mat = mat.Moved(win.Bounds().Center()) + sprite.Draw(win, mat) win.Update() } }