improve moviment
This commit is contained in:
58
main.go
58
main.go
@@ -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"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user