Keyboard input for moving

This commit is contained in:
2023-11-28 07:29:17 +01:00
parent 46f331aa00
commit 9ea4c3beb2
5 changed files with 84 additions and 23 deletions

53
input/keyboard.go Normal file
View File

@@ -0,0 +1,53 @@
package input
import (
"github.com/hajimehoshi/ebiten/v2"
"sort"
"strings"
)
import "gitlab.com/kbr4/9heroja/configuration"
type Keyboard struct {
}
func (k *Keyboard) DirectionFromKeys(keys []ebiten.Key) configuration.Direction {
direction := ""
for _, key := range keys {
switch key {
case ebiten.KeyUp:
direction += "N"
case ebiten.KeyRight:
direction += "E"
case ebiten.KeyLeft:
direction += "W"
case ebiten.KeyDown:
direction += "S"
}
}
// sort direction string
s := strings.Split(direction, "")
sort.Strings(s)
sortedDirection := strings.Join(s, "")
switch sortedDirection {
case "N":
return configuration.North
case "E":
return configuration.East
case "S":
return configuration.South
case "W":
return configuration.West
case "EN":
return configuration.NorthEast
case "ES":
return configuration.SouthEast
case "SW":
return configuration.SouthWest
case "NW":
return configuration.NorthWest
default:
return configuration.PreviouslyHeld
}
}