mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2025-02-05 07:24:30 +01:00
examples/windowsize: Add an option to skip clearing the screen
Updates #1132
This commit is contained in:
parent
71e65fa1b7
commit
d90edf5826
@ -21,7 +21,6 @@ import (
|
|||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"image"
|
"image"
|
||||||
"image/color"
|
|
||||||
_ "image/jpeg"
|
_ "image/jpeg"
|
||||||
"log"
|
"log"
|
||||||
"math"
|
"math"
|
||||||
@ -144,6 +143,7 @@ func (g *game) Update(screen *ebiten.Image) error {
|
|||||||
g.transparent = ebiten.IsScreenTransparent()
|
g.transparent = ebiten.IsScreenTransparent()
|
||||||
floating := ebiten.IsWindowFloating()
|
floating := ebiten.IsWindowFloating()
|
||||||
resizable := ebiten.IsWindowResizable()
|
resizable := ebiten.IsWindowResizable()
|
||||||
|
clearingScreenSkipped := ebiten.IsClearingScreenSkipped()
|
||||||
|
|
||||||
const d = 16
|
const d = 16
|
||||||
toUpdateWindowSize := false
|
toUpdateWindowSize := false
|
||||||
@ -230,6 +230,9 @@ func (g *game) Update(screen *ebiten.Image) error {
|
|||||||
if inpututil.IsKeyJustPressed(ebiten.KeyR) {
|
if inpututil.IsKeyJustPressed(ebiten.KeyR) {
|
||||||
resizable = !resizable
|
resizable = !resizable
|
||||||
}
|
}
|
||||||
|
if inpututil.IsKeyJustPressed(ebiten.KeyW) {
|
||||||
|
clearingScreenSkipped = !clearingScreenSkipped
|
||||||
|
}
|
||||||
maximize := inpututil.IsKeyJustPressed(ebiten.KeyM)
|
maximize := inpututil.IsKeyJustPressed(ebiten.KeyM)
|
||||||
minimize := inpututil.IsKeyJustPressed(ebiten.KeyN)
|
minimize := inpututil.IsKeyJustPressed(ebiten.KeyN)
|
||||||
restore := false
|
restore := false
|
||||||
@ -255,6 +258,7 @@ func (g *game) Update(screen *ebiten.Image) error {
|
|||||||
ebiten.SetWindowDecorated(decorated)
|
ebiten.SetWindowDecorated(decorated)
|
||||||
ebiten.SetWindowPosition(positionX, positionY)
|
ebiten.SetWindowPosition(positionX, positionY)
|
||||||
ebiten.SetWindowFloating(floating)
|
ebiten.SetWindowFloating(floating)
|
||||||
|
ebiten.SetClearingScreenSkipped(clearingScreenSkipped)
|
||||||
if maximize && ebiten.IsWindowResizable() {
|
if maximize && ebiten.IsWindowResizable() {
|
||||||
ebiten.MaximizeWindow()
|
ebiten.MaximizeWindow()
|
||||||
}
|
}
|
||||||
@ -278,15 +282,12 @@ func (g *game) Update(screen *ebiten.Image) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (g *game) Draw(screen *ebiten.Image) {
|
func (g *game) Draw(screen *ebiten.Image) {
|
||||||
if !g.transparent {
|
|
||||||
screen.Fill(color.RGBA{0x80, 0x80, 0xc0, 0xff})
|
|
||||||
}
|
|
||||||
w, h := gophersImage.Size()
|
w, h := gophersImage.Size()
|
||||||
w2, h2 := screen.Size()
|
w2, h2 := screen.Size()
|
||||||
op := &ebiten.DrawImageOptions{}
|
op := &ebiten.DrawImageOptions{}
|
||||||
op.GeoM.Translate(float64(-w+w2)/2, float64(-h+h2)/2)
|
op.GeoM.Translate(float64(-w+w2)/2, float64(-h+h2)/2)
|
||||||
dx := math.Cos(2*math.Pi*float64(count)/360) * 10
|
dx := math.Cos(2*math.Pi*float64(count)/360) * 20
|
||||||
dy := math.Sin(2*math.Pi*float64(count)/360) * 10
|
dy := math.Sin(2*math.Pi*float64(count)/360) * 20
|
||||||
op.GeoM.Translate(dx, dy)
|
op.GeoM.Translate(dx, dy)
|
||||||
screen.DrawImage(gophersImage, op)
|
screen.DrawImage(gophersImage, op)
|
||||||
|
|
||||||
@ -331,6 +332,7 @@ func (g *game) Draw(screen *ebiten.Image) {
|
|||||||
[T] Switch TPS (ticks per second)
|
[T] Switch TPS (ticks per second)
|
||||||
[D] Switch the window decoration (only for desktops)
|
[D] Switch the window decoration (only for desktops)
|
||||||
[L] Switch the window floating state (only for desktops)
|
[L] Switch the window floating state (only for desktops)
|
||||||
|
[W] Switch whether to skip clearing the screen
|
||||||
%s
|
%s
|
||||||
%s
|
%s
|
||||||
IsFocused?: %s
|
IsFocused?: %s
|
||||||
|
Loading…
Reference in New Issue
Block a user