improve moviment

This commit is contained in:
Cesar Gimenes
2021-09-20 17:20:14 -03:00
parent b3b634ed20
commit 666d80be71

58
main.go
View File

@@ -65,6 +65,12 @@ func (m *neko) Update() error {
} }
m.distance = dx + dy m.distance = dx + dy
if m.distance < width {
// idle state
m.sprite = "wash"
return nil
}
// get mouse direction // get mouse direction
r := math.Atan2(float64(y), float64(x)) r := math.Atan2(float64(y), float64(x))
tr := 0.0 tr := 0.0
@@ -74,36 +80,44 @@ func (m *neko) Update() error {
a := (r / math.Pi * 180) + tr a := (r / math.Pi * 180) + tr
switch { switch {
case m.distance < width: case a <= 292.5 && a > 247.5:
// idle state
m.sprite = "wash"
case a < 292.5 && a > 247.5:
m.y-- m.y--
case a <= 337.5 && a > 292.5:
m.x++
m.y--
case a <= 22.5 || a > 337.5:
m.x++
case a <= 67.5 && a > 22.5:
m.x++
m.y++
case a <= 112.5 && a > 67.5:
m.y++
case a <= 157.5 && a > 112.5:
m.x--
m.y++
case a <= 202.5 && a > 157.5:
m.x--
case a <= 247.5 && a > 202.5:
m.x--
m.y--
}
switch {
case a < 292 && a > 247:
m.sprite = "up" m.sprite = "up"
case a < 337.5 && a > 292.5: case a < 337 && a > 292:
m.x++
m.y--
m.sprite = "upright" m.sprite = "upright"
case a < 22.5 || a > 337.5: case a < 22 || a > 337:
m.x++
m.sprite = "right" m.sprite = "right"
case a < 67.5 && a > 22.5: case a < 67 && a > 22:
m.x++
m.y++
m.sprite = "downright" m.sprite = "downright"
case a < 112.5 && a > 67.5: case a < 112 && a > 67:
m.y++
m.sprite = "down" m.sprite = "down"
case a < 157.5 && a > 112.5: case a < 157 && a > 112:
m.x--
m.y++
m.sprite = "downleft" m.sprite = "downleft"
case a < 202.5 && a > 157.5: case a < 202 && a > 157:
m.x--
m.sprite = "left" m.sprite = "left"
case a < 247.5 && a > 202.5: case a < 247 && a > 202:
m.x--
m.y--
m.sprite = "upleft" m.sprite = "upleft"
} }