reduce TPS
This commit is contained in:
47
main.go
47
main.go
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user