Ebiten example - hue
package main
import (
"github.com/hajimehoshi/ebiten"
"github.com/hajimehoshi/ebiten/ebitenutil"
_ "image/jpeg"
"log"
"math"
)
const (
screenWidth = 320
screenHeight = 240
)
var (
count int
gophersImage *ebiten.Image
)
func update(screen *ebiten.Image) error {
count++
w, h := gophersImage.Size()
op := &ebiten.DrawImageOptions{}
op.GeoM.Translate(float64(screenWidth-w)/2, float64(screenHeight-h)/2)
op.ColorM.Concat(ebiten.RotateHue(float64(count%360) * 2 * math.Pi / 360))
if err := screen.DrawImage(gophersImage, op); err != nil {
return err
}
return nil
}
func main() {
var err error
gophersImage, _, err = ebitenutil.NewImageFromFile("images/gophers.jpg", ebiten.FilterNearest)
if err != nil {
log.Fatal(err)
}
if err := ebiten.Run(update, screenWidth, screenHeight, 2, "Hue (Ebiten Demo)"); err != nil {
log.Fatal(err)
}
}