Put cat to sleep

This commit is contained in:
Raffaele Sena
2023-02-02 19:59:21 -08:00
parent ef0311a7a0
commit fe4a01519a

31
main.go
View File

@@ -35,6 +35,7 @@ type neko struct {
y int y int
distance int distance int
count int count int
state int
sprite string sprite string
} }
@@ -68,10 +69,32 @@ func (m *neko) Update() error {
m.distance = dx + dy m.distance = dx + dy
if m.distance < width { if m.distance < width {
// idle state // idle state
m.sprite = "wash" switch m.state {
case 0:
m.state = 1
fallthrough
case 1, 2, 3:
m.sprite = "awake"
case 4, 5, 6:
m.sprite = "scratch"
case 7, 8, 9:
m.sprite = "wash"
case 10, 11, 12:
m.sprite = "yawn"
default:
m.sprite = "sleep"
}
return nil return nil
} }
m.state = 0
tr := 0.0 tr := 0.0
// get mouse direction // get mouse direction
r := math.Atan2(float64(y), float64(x)) r := math.Atan2(float64(y), float64(x))
@@ -130,6 +153,8 @@ func (m *neko) Draw(screen *ebiten.Image) {
var img *ebiten.Image var img *ebiten.Image
switch { switch {
case m.sprite == "awake":
img = mSprite[m.sprite]
case m.count < 8: case m.count < 8:
img = mSprite[m.sprite+"1"] img = mSprite[m.sprite+"1"]
default: default:
@@ -138,6 +163,10 @@ func (m *neko) Draw(screen *ebiten.Image) {
if m.count > 16 { if m.count > 16 {
m.count = 0 m.count = 0
if m.state > 0 {
m.state++
}
} }
op := &ebiten.DrawImageOptions{} op := &ebiten.DrawImageOptions{}