Put cat to sleep
This commit is contained in:
31
main.go
31
main.go
@@ -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{}
|
||||||
|
|||||||
Reference in New Issue
Block a user