77 lines
1.3 KiB
Go
77 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/hajimehoshi/ebiten/v2"
|
|
"github.com/hajimehoshi/ebiten/v2/inpututil"
|
|
)
|
|
|
|
|
|
type keymap struct{
|
|
keys []ebiten.Key
|
|
mouseButtons []ebiten.MouseButton
|
|
}
|
|
|
|
var resize = keymap{
|
|
keys: []ebiten.Key{ebiten.KeyD, ebiten.KeyK,},
|
|
}
|
|
var drawBlack = keymap{
|
|
keys: []ebiten.Key{ebiten.KeyF, ebiten.KeyJ,},
|
|
}
|
|
var drawWhite = keymap{
|
|
keys: []ebiten.Key{ebiten.KeyS, ebiten.KeyL,},
|
|
}
|
|
var undo = keymap{
|
|
keys: []ebiten.Key{ebiten.KeyZ, ebiten.KeyU,},
|
|
}
|
|
var redo = keymap{
|
|
keys: []ebiten.Key{ebiten.KeyX, ebiten.KeyR,},
|
|
}
|
|
|
|
func (k keymap) isJustPressed() bool {
|
|
for _, key := range k.keys {
|
|
if inpututil.IsKeyJustPressed(key) {
|
|
return true
|
|
}
|
|
}
|
|
|
|
for _, mouseButton := range k.mouseButtons {
|
|
if inpututil.IsMouseButtonJustPressed(mouseButton) {
|
|
return true
|
|
}
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
func (k keymap) isJustReleased() bool {
|
|
for _, key := range k.keys {
|
|
if inpututil.IsKeyJustReleased(key) {
|
|
return true
|
|
}
|
|
}
|
|
|
|
for _, mouseButton := range k.mouseButtons {
|
|
if inpututil.IsMouseButtonJustReleased(mouseButton) {
|
|
return true
|
|
}
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
func (k keymap) isPressed() bool {
|
|
for _, key := range k.keys {
|
|
if ebiten.IsKeyPressed(key) {
|
|
return true
|
|
}
|
|
}
|
|
|
|
for _, mouseButton := range k.mouseButtons {
|
|
if ebiten.IsMouseButtonPressed(mouseButton) {
|
|
return true
|
|
}
|
|
}
|
|
|
|
return false
|
|
}
|