Compare commits
10 Commits
333c9caf6e
...
7102f038cc
| Author | SHA1 | Date | |
|---|---|---|---|
| 7102f038cc | |||
|
|
a36de60714 | ||
|
|
86fead856a | ||
|
|
a088f1a7c5 | ||
|
|
2d082682c5 | ||
|
|
75ff1f0078 | ||
|
|
755ff9d65e | ||
|
|
60e0487fed | ||
|
|
9394d24bcc | ||
|
|
9d5731f423 |
1
.gitignore
vendored
@@ -19,3 +19,4 @@
|
||||
|
||||
dist/
|
||||
notes.md
|
||||
release.sh
|
||||
|
||||
BIN
assets/awake.png
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 498 B |
BIN
assets/down1.png
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 414 B |
BIN
assets/down2.png
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 387 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 474 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 531 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 444 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 501 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 939 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1005 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 951 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 993 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 954 B |
BIN
assets/fp_up.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 969 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 960 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 963 B |
BIN
assets/left1.png
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 444 B |
BIN
assets/left2.png
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 426 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 441 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 444 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 441 B |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 453 B |
BIN
assets/up1.png
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 432 B |
BIN
assets/up2.png
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 405 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 468 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 513 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 471 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 510 B |
BIN
assets/yawn1.png
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.4 KiB |
BIN
assets/yawn2.png
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.4 KiB |
14
go.mod
@@ -1,22 +1,22 @@
|
||||
module neko
|
||||
|
||||
go 1.24
|
||||
go 1.25
|
||||
|
||||
require (
|
||||
crg.eti.br/go/config v1.5.0
|
||||
github.com/hajimehoshi/ebiten/v2 v2.8.7
|
||||
github.com/hajimehoshi/ebiten/v2 v2.8.9
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/ebitengine/gomobile v0.0.0-20250329061421-6d0a8e981e4c // indirect
|
||||
github.com/ebitengine/gomobile v0.0.0-20250923094054-ea854a63cce1 // indirect
|
||||
github.com/ebitengine/hideconsole v1.0.0 // indirect
|
||||
github.com/ebitengine/oto/v3 v3.3.3 // indirect
|
||||
github.com/ebitengine/purego v0.8.2 // indirect
|
||||
github.com/ebitengine/oto/v3 v3.4.0 // indirect
|
||||
github.com/ebitengine/purego v0.9.0 // indirect
|
||||
github.com/jezek/xgb v1.1.1 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
golang.org/x/sync v0.12.0 // indirect
|
||||
golang.org/x/sys v0.31.0 // indirect
|
||||
golang.org/x/sync v0.17.0 // indirect
|
||||
golang.org/x/sys v0.36.0 // indirect
|
||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
)
|
||||
|
||||
78
go.sum
@@ -2,78 +2,28 @@ crg.eti.br/go/config v1.5.0 h1:UiHy9zAhFj5LxKPm7TwgVMc7VBxtYWpFcGtXKQHCyf0=
|
||||
crg.eti.br/go/config v1.5.0/go.mod h1:Wk/f8SMC4nwlUJu0gRqUA6IOCJ/vMDMlaOvKaF6KqKI=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/ebitengine/gomobile v0.0.0-20240911013058-19d2b8b92254 h1:4gZw/SDMJtxpPh+lMpXLZ63LWWna0mZgtEBuvizRmdo=
|
||||
github.com/ebitengine/gomobile v0.0.0-20240911013058-19d2b8b92254/go.mod h1:n2NbB/F4d9wOXFzC7FT1ipERidmYWC5I4YNOYRs5N7I=
|
||||
github.com/ebitengine/gomobile v0.0.0-20240911145611-4856209ac325 h1:Gk1XUEttOk0/hb6Tq3WkmutWa0ZLhNn/6fc6XZpM7tM=
|
||||
github.com/ebitengine/gomobile v0.0.0-20240911145611-4856209ac325/go.mod h1:ulhSQcbPioQrallSuIzF8l1NKQoD7xmMZc5NxzibUMY=
|
||||
github.com/ebitengine/gomobile v0.0.0-20241001034212-22433622d8a5 h1:vAmkJvgX1ukQ772M7yxWCmSfDwr8vLAZTWlJqM1ox4A=
|
||||
github.com/ebitengine/gomobile v0.0.0-20241001034212-22433622d8a5/go.mod h1:ulhSQcbPioQrallSuIzF8l1NKQoD7xmMZc5NxzibUMY=
|
||||
github.com/ebitengine/gomobile v0.0.0-20241016134836-cc2e38a7c0ee h1:YoNt0DHeZ92kjR78SfyUn1yEf7KnBypOFlFZO14cJ6w=
|
||||
github.com/ebitengine/gomobile v0.0.0-20241016134836-cc2e38a7c0ee/go.mod h1:ZDIonJlTRW7gahIn5dEXZtN4cM8Qwtlduob8cOCflmg=
|
||||
github.com/ebitengine/gomobile v0.0.0-20250209143333-6071a2a2351c h1:nCxkoQoJMcVLc5aoMp3ULbfyEMcQjxopBKgNQVBQFXE=
|
||||
github.com/ebitengine/gomobile v0.0.0-20250209143333-6071a2a2351c/go.mod h1:yMh1VvLL71zDgHlVlIXXJIGmv36QcJ9ZD2gtIGYAp3I=
|
||||
github.com/ebitengine/gomobile v0.0.0-20250329061421-6d0a8e981e4c h1:Ccgks2VROTr6bIm1FFxG2jT6P1DaCBMj8g/O9xbOQ08=
|
||||
github.com/ebitengine/gomobile v0.0.0-20250329061421-6d0a8e981e4c/go.mod h1:M6DDA2RbegvWBVv4Dq482lwyFTtMczT1A7UNm1qOYzY=
|
||||
github.com/ebitengine/gomobile v0.0.0-20250923094054-ea854a63cce1 h1:+kz5iTT3L7uU+VhlMfTb8hHcxLO3TlaELlX8wa4XjA0=
|
||||
github.com/ebitengine/gomobile v0.0.0-20250923094054-ea854a63cce1/go.mod h1:lKJoeixeJwnFmYsBny4vvCJGVFc3aYDalhuDsfZzWHI=
|
||||
github.com/ebitengine/hideconsole v1.0.0 h1:5J4U0kXF+pv/DhiXt5/lTz0eO5ogJ1iXb8Yj1yReDqE=
|
||||
github.com/ebitengine/hideconsole v1.0.0/go.mod h1:hTTBTvVYWKBuxPr7peweneWdkUwEuHuB3C1R/ielR1A=
|
||||
github.com/ebitengine/oto/v3 v3.2.0 h1:FuggTJTSI3/3hEYwZEIN0CZVXYT29ZOdCu+z/f4QjTw=
|
||||
github.com/ebitengine/oto/v3 v3.2.0/go.mod h1:dOKXShvy1EQbIXhXPFcKLargdnFqH0RjptecvyAxhyw=
|
||||
github.com/ebitengine/oto/v3 v3.3.0 h1:34lJpJLqda0Iee9g9p8RWtVVwBcOOO2YSIS2x4yD1OQ=
|
||||
github.com/ebitengine/oto/v3 v3.3.0/go.mod h1:MZeb/lwoC4DCOdiTIxYezrURTw7EvK/yF863+tmBI+U=
|
||||
github.com/ebitengine/oto/v3 v3.3.1 h1:d4McwGQuXOT0GL7bA5g9ZnaUEIEjQvG3hafzMy+T3qE=
|
||||
github.com/ebitengine/oto/v3 v3.3.1/go.mod h1:MZeb/lwoC4DCOdiTIxYezrURTw7EvK/yF863+tmBI+U=
|
||||
github.com/ebitengine/oto/v3 v3.3.2 h1:VTWBsKX9eb+dXzaF4jEwQbs4yWIdXukJ0K40KgkpYlg=
|
||||
github.com/ebitengine/oto/v3 v3.3.2/go.mod h1:MZeb/lwoC4DCOdiTIxYezrURTw7EvK/yF863+tmBI+U=
|
||||
github.com/ebitengine/oto/v3 v3.3.3 h1:m6RV69OqoXYSWCDsHXN9rc07aDuDstGHtait7HXSM7g=
|
||||
github.com/ebitengine/oto/v3 v3.3.3/go.mod h1:MZeb/lwoC4DCOdiTIxYezrURTw7EvK/yF863+tmBI+U=
|
||||
github.com/ebitengine/purego v0.7.1 h1:6/55d26lG3o9VCZX8lping+bZcmShseiqlh2bnUDiPA=
|
||||
github.com/ebitengine/purego v0.7.1/go.mod h1:ah1In8AOtksoNK6yk5z1HTJeUkC1Ez4Wk2idgGslMwQ=
|
||||
github.com/ebitengine/purego v0.8.0 h1:JbqvnEzRvPpxhCJzJJ2y0RbiZ8nyjccVUrSM3q+GvvE=
|
||||
github.com/ebitengine/purego v0.8.0/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
|
||||
github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE=
|
||||
github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
|
||||
github.com/ebitengine/purego v0.8.2 h1:jPPGWs2sZ1UgOSgD2bClL0MJIqu58nOmIcBuXr62z1I=
|
||||
github.com/ebitengine/purego v0.8.2/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
|
||||
github.com/hajimehoshi/ebiten/v2 v2.7.9 h1:DYH/usAa9dMHcGkBIIEApJsVqDekrJBxYHmsBuly8Iw=
|
||||
github.com/hajimehoshi/ebiten/v2 v2.7.9/go.mod h1:Ulbq5xDmdx47P24EJ+Mb31Zps7vQq+guieG9mghQUaA=
|
||||
github.com/hajimehoshi/ebiten/v2 v2.7.10 h1:fsVukQdPDUlalSSpFkuszTy0cK2DL0fxFoSnTVdlmAM=
|
||||
github.com/hajimehoshi/ebiten/v2 v2.7.10/go.mod h1:Ulbq5xDmdx47P24EJ+Mb31Zps7vQq+guieG9mghQUaA=
|
||||
github.com/hajimehoshi/ebiten/v2 v2.8.0 h1:CZF2PAksTG7vee9mu1Ok9QHqPyic0rTmIQvepYjs66A=
|
||||
github.com/hajimehoshi/ebiten/v2 v2.8.0/go.mod h1:32c6GXjzxA/h2CLLNMjWv5dVSNkTnn7NASZm0nXC/rA=
|
||||
github.com/hajimehoshi/ebiten/v2 v2.8.1 h1:6n6ZXnbeSCZccdqrH7s9Ut+dll9TEostUqbc72Tis/g=
|
||||
github.com/hajimehoshi/ebiten/v2 v2.8.1/go.mod h1:SXx/whkvpfsavGo6lvZykprerakl+8Uo1X8d2U5aAnA=
|
||||
github.com/hajimehoshi/ebiten/v2 v2.8.6 h1:Dkd/sYI0TYyZRCE7GVxV59XC+WCi2BbGAbIBjXeVC1U=
|
||||
github.com/hajimehoshi/ebiten/v2 v2.8.6/go.mod h1:cCQ3np7rdmaJa1ZnvslraVlpxNb3wCjEnAP1LHNyXNA=
|
||||
github.com/hajimehoshi/ebiten/v2 v2.8.7 h1:DnvNZuB8RF0ffOUTuqaXHl9d51VAT9XYfEMQPYD37v4=
|
||||
github.com/hajimehoshi/ebiten/v2 v2.8.7/go.mod h1:durJ05+OYnio9b8q0sEtOgaNeBEQG7Yr7lRviAciYbs=
|
||||
github.com/ebitengine/oto/v3 v3.4.0 h1:br0PgASsEWaoWn38b2Goe7m1GKFYfNgnsjSd5Gg+/bQ=
|
||||
github.com/ebitengine/oto/v3 v3.4.0/go.mod h1:IOleLVD0m+CMak3mRVwsYY8vTctQgOM0iiL6S7Ar7eI=
|
||||
github.com/ebitengine/purego v0.9.0 h1:mh0zpKBIXDceC63hpvPuGLiJ8ZAa3DfrFTudmfi8A4k=
|
||||
github.com/ebitengine/purego v0.9.0/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
|
||||
github.com/hajimehoshi/ebiten/v2 v2.8.9 h1:qUkI++Dq5Jzcwio5vOIZj6kAkzvei9S3X9zrUJIKJDA=
|
||||
github.com/hajimehoshi/ebiten/v2 v2.8.9/go.mod h1:2W03LiNMJj7+mFtYbnZlSLoxovd2bpg4FzQR0pZhzAA=
|
||||
github.com/jezek/xgb v1.1.1 h1:bE/r8ZZtSv7l9gk6nU0mYx51aXrvnyb44892TwSaqS4=
|
||||
github.com/jezek/xgb v1.1.1/go.mod h1:nrhwO0FX/enq75I7Y7G8iN1ubpSGZEiA3v9e9GyRFlk=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
golang.org/x/image v0.19.0 h1:D9FX4QWkLfkeqaC62SonffIIuYdOk/UE2XKUBgRIBIQ=
|
||||
golang.org/x/image v0.19.0/go.mod h1:y0zrRqlQRWQ5PXaYCOMLTW2fpsxZ8Qh9I/ohnInJEys=
|
||||
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
|
||||
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
|
||||
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
|
||||
golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
|
||||
golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
|
||||
golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
|
||||
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
|
||||
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
|
||||
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
|
||||
golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
|
||||
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
|
||||
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/image v0.31.0 h1:mLChjE2MV6g1S7oqbXC0/UcKijjm5fnJLUYKIYrLESA=
|
||||
golang.org/x/image v0.31.0/go.mod h1:R9ec5Lcp96v9FTF+ajwaH3uGxPH4fKfHHAVbUILxghA=
|
||||
golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
|
||||
golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
|
||||
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
|
||||
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
|
||||
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
|
||||
61
main.go
@@ -24,8 +24,8 @@ import (
|
||||
|
||||
type neko struct {
|
||||
waiting bool
|
||||
x int
|
||||
y int
|
||||
x float64
|
||||
y float64
|
||||
distance int
|
||||
count int
|
||||
min int
|
||||
@@ -37,7 +37,7 @@ type neko struct {
|
||||
}
|
||||
|
||||
type Config struct {
|
||||
Speed int `cfg:"speed" cfgDefault:"2" cfgHelper:"The speed of the cat."`
|
||||
Speed float64 `cfg:"speed" cfgDefault:"2.0" cfgHelper:"The speed of the cat."`
|
||||
Scale float64 `cfg:"scale" cfgDefault:"2.0" cfgHelper:"The scale of the cat."`
|
||||
Quiet bool `cfg:"quiet" cfgDefault:"false" cfgHelper:"Disable sound."`
|
||||
MousePassthrough bool `cfg:"mousepassthrough" cfgDefault:"false" cfgHelper:"Enable mouse passthrough."`
|
||||
@@ -86,9 +86,9 @@ func (m *neko) Update() error {
|
||||
}
|
||||
// Prevents neko from being stuck on the side of the screen
|
||||
// or randomly travelling to another monitor
|
||||
m.x = max(0, min(m.x, monitorWidth))
|
||||
m.y = max(0, min(m.y, monitorHeight))
|
||||
ebiten.SetWindowPosition(m.x, m.y)
|
||||
m.x = max(0, min(m.x, float64(monitorWidth)))
|
||||
m.y = max(0, min(m.y, float64(monitorHeight)))
|
||||
ebiten.SetWindowPosition(int(math.Round(m.x)), int(math.Round(m.y)))
|
||||
|
||||
mx, my := ebiten.CursorPosition()
|
||||
x := mx - (height / 2)
|
||||
@@ -148,54 +148,39 @@ func (m *neko) catchCursor(x, y int) {
|
||||
m.state = 0
|
||||
m.min = 8
|
||||
m.max = 16
|
||||
tr := 0.0
|
||||
|
||||
// get mouse direction
|
||||
r := math.Atan2(float64(y), float64(x))
|
||||
if r <= 0 {
|
||||
tr = 360
|
||||
}
|
||||
|
||||
a := (r / math.Pi * 180) + tr
|
||||
a := math.Mod((r/math.Pi*180)+360, 360) // Normazing angle to [0, 360)
|
||||
|
||||
switch {
|
||||
case a <= 292.5 && a > 247.5: // up
|
||||
m.y -= cfg.Speed
|
||||
m.sprite = "up"
|
||||
case a <= 337.5 && a > 292.5: // up right
|
||||
m.x += cfg.Speed
|
||||
m.y -= cfg.Speed
|
||||
m.x += cfg.Speed / math.Sqrt2
|
||||
m.y -= cfg.Speed / math.Sqrt2
|
||||
m.sprite = "upright"
|
||||
case a <= 22.5 || a > 337.5: // right
|
||||
m.x += cfg.Speed
|
||||
m.sprite = "right"
|
||||
case a <= 67.5 && a > 22.5: // down right
|
||||
m.x += cfg.Speed
|
||||
m.y += cfg.Speed
|
||||
m.x += cfg.Speed / math.Sqrt2
|
||||
m.y += cfg.Speed / math.Sqrt2
|
||||
m.sprite = "downright"
|
||||
case a <= 112.5 && a > 67.5: // down
|
||||
m.y += cfg.Speed
|
||||
m.sprite = "down"
|
||||
case a <= 157.5 && a > 112.5: // down left
|
||||
m.x -= cfg.Speed
|
||||
m.y += cfg.Speed
|
||||
m.x -= cfg.Speed / math.Sqrt2
|
||||
m.y += cfg.Speed / math.Sqrt2
|
||||
m.sprite = "downleft"
|
||||
case a <= 202.5 && a > 157.5: // left
|
||||
m.x -= cfg.Speed
|
||||
m.sprite = "left"
|
||||
case a <= 247.5 && a > 202.5: // up left
|
||||
m.x -= cfg.Speed
|
||||
m.y -= cfg.Speed
|
||||
}
|
||||
|
||||
switch {
|
||||
case a < 292 && a > 247:
|
||||
m.sprite = "up"
|
||||
case a < 337 && a > 292:
|
||||
m.sprite = "upright"
|
||||
case a < 22 || a > 337:
|
||||
m.sprite = "right"
|
||||
case a < 67 && a > 22:
|
||||
m.sprite = "downright"
|
||||
case a < 112 && a > 67:
|
||||
m.sprite = "down"
|
||||
case a < 157 && a > 112:
|
||||
m.sprite = "downleft"
|
||||
case a < 202 && a > 157:
|
||||
m.sprite = "left"
|
||||
case a < 247 && a > 202:
|
||||
m.sprite = "upleft"
|
||||
}
|
||||
}
|
||||
@@ -280,8 +265,8 @@ func main() {
|
||||
audio.CurrentContext().NewPlayerFromBytes([]byte{}).Play()
|
||||
|
||||
n := &neko{
|
||||
x: monitorWidth / 2,
|
||||
y: monitorHeight / 2,
|
||||
x: float64(monitorWidth / 2),
|
||||
y: float64(monitorHeight / 2),
|
||||
min: 8,
|
||||
max: 16,
|
||||
}
|
||||
|
||||