mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-11-10 04:57:26 +01:00
examples/rotate: Refactoring
This commit is contained in:
parent
52a753a12f
commit
6ba0e6d373
@ -31,7 +31,7 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
count int
|
count = 0
|
||||||
gophersImage *ebiten.Image
|
gophersImage *ebiten.Image
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -42,8 +42,17 @@ func update(screen *ebiten.Image) error {
|
|||||||
}
|
}
|
||||||
w, h := gophersImage.Size()
|
w, h := gophersImage.Size()
|
||||||
op := &ebiten.DrawImageOptions{}
|
op := &ebiten.DrawImageOptions{}
|
||||||
|
|
||||||
|
// Move the image's center to the screen's upper-left corner.
|
||||||
|
// This is a prepartion for rotating. When geometry matrices are applied,
|
||||||
|
// the origin point is the upper-left corner.
|
||||||
op.GeoM.Translate(-float64(w)/2, -float64(h)/2)
|
op.GeoM.Translate(-float64(w)/2, -float64(h)/2)
|
||||||
|
|
||||||
|
// Rotate the image. As a result, the anchor point of this rotate is
|
||||||
|
// the center of the image.
|
||||||
op.GeoM.Rotate(float64(count%360) * 2 * math.Pi / 360)
|
op.GeoM.Rotate(float64(count%360) * 2 * math.Pi / 360)
|
||||||
|
|
||||||
|
// Move the image to the screen's center.
|
||||||
op.GeoM.Translate(screenWidth/2, screenHeight/2)
|
op.GeoM.Translate(screenWidth/2, screenHeight/2)
|
||||||
screen.DrawImage(gophersImage, op)
|
screen.DrawImage(gophersImage, op)
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
Reference in New Issue
Block a user