reduce TPS

This commit is contained in:
crgimenes
2023-09-09 10:34:29 -03:00
parent 0355a467df
commit 094a5763ac

47
main.go
View File

@@ -20,14 +20,16 @@ import (
) )
type neko struct { type neko struct {
x int x int
y int y int
distance int distance int
count int count int
min int min int
max int max int
state int state int
sprite string sprite string
lastSprite string
img *ebiten.Image
} }
type Config struct { type Config struct {
@@ -162,17 +164,18 @@ func (m *neko) Update() error {
} }
func (m *neko) Draw(screen *ebiten.Image) { func (m *neko) Draw(screen *ebiten.Image) {
var img *ebiten.Image var sprite string
switch { switch {
case m.sprite == "awake": case m.sprite == "awake":
img = mSprite[m.sprite] sprite = m.sprite
case m.count < m.min: case m.count < m.min:
img = mSprite[m.sprite+"1"] sprite = m.sprite + "1"
default: default:
img = mSprite[m.sprite+"2"] sprite = m.sprite + "2"
} }
m.img = mSprite[sprite]
if m.count > m.max { if m.count > m.max {
m.count = 0 m.count = 0
@@ -181,9 +184,17 @@ func (m *neko) Draw(screen *ebiten.Image) {
} }
} }
if m.lastSprite == sprite {
return
}
m.lastSprite = sprite
screen.Clear()
op := &ebiten.DrawImageOptions{} op := &ebiten.DrawImageOptions{}
op.GeoM.Scale(cfg.Scale, cfg.Scale) op.GeoM.Scale(cfg.Scale, cfg.Scale)
screen.DrawImage(img, op) screen.DrawImage(m.img, op)
} }
func main() { func main() {
@@ -219,12 +230,16 @@ func main() {
max: 16, max: 16,
} }
ebiten.SetScreenTransparent(true)
ebiten.SetWindowDecorated(false) ebiten.SetWindowDecorated(false)
ebiten.SetWindowFloating(true) ebiten.SetWindowFloating(true)
ebiten.SetWindowSize(width, height) ebiten.SetWindowSize(width, height)
ebiten.SetTPS(50)
ebiten.SetScreenClearedEveryFrame(false)
ebiten.SetVsyncEnabled(true)
err := ebiten.RunGame(n) err := ebiten.RunGameWithOptions(n, &ebiten.RunGameOptions{
ScreenTransparent: true,
})
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }