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

View File

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