Added capslock key, toggable with ctrl-alt-c

This commit is contained in:
Will Angenent 2018-05-12 13:59:43 +01:00
parent 100c44cb11
commit 0a7b8c81b3
1 changed files with 21 additions and 13 deletions

View File

@ -11,10 +11,12 @@ var controlMap map[uint8]uint8
var keyBoardData uint8
var strobe uint8
var previousKeysPressed map[uint8]bool
var capsLock bool
func Init() {
keyBoardData = 0
strobe = 0
capsLock = true
ebitenAsciiMap = make(map[ebiten.Key]uint8)
shiftMap = make(map[uint8]uint8)
@ -225,22 +227,28 @@ func Poll() {
}
key := keys[0]
if ebiten.IsKeyPressed(ebiten.KeyShift) {
shiftedKey, present := shiftMap[key]
if present {
key = shiftedKey
}
}
if ebiten.IsKeyPressed(ebiten.KeyControl) && ebiten.IsKeyPressed(ebiten.KeyAlt) && key == 'c' {
capsLock = !capsLock
} else {
shift := ebiten.IsKeyPressed(ebiten.KeyShift)
shift = shift || (capsLock && key >= 'a' && key <= 'z')
if ebiten.IsKeyPressed(ebiten.KeyControl) {
controlKey, present := controlMap[key]
if present {
key = controlKey
if shift {
shiftedKey, present := shiftMap[key]
if present {
key = shiftedKey
}
}
}
keyBoardData = key | 0x80
strobe = keyBoardData
if ebiten.IsKeyPressed(ebiten.KeyControl) {
controlKey, present := controlMap[key]
if present {
key = controlKey
}
}
keyBoardData = key | 0x80
strobe = keyBoardData
}
return
}