blob: 5d03b08c01aa32763f403faaadfea83e90d95b78 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package engine
import (
"age_of_empires/physics"
"github.com/hajimehoshi/ebiten/v2"
"github.com/hajimehoshi/ebiten/v2/inpututil"
)
type Input struct {
Cursor physics.Point
ScreenCursor physics.Point
EscapePressed bool
PatrolPressed bool
LeftMouseDown bool
LeftMouseUp bool
RightMouseUp bool
SpawnPressed bool
}
func CollectInput(camera *Camera) Input {
sx, sy := ebiten.CursorPosition()
return Input{
Cursor: camera.ScreenToWorld(sx, sy),
ScreenCursor: physics.Point{X: sx, Y: sy},
EscapePressed: inpututil.IsKeyJustReleased(ebiten.KeyEscape),
PatrolPressed: inpututil.IsKeyJustReleased(KeyPatrolRequest),
LeftMouseDown: inpututil.IsMouseButtonJustPressed(ebiten.MouseButtonLeft),
LeftMouseUp: inpututil.IsMouseButtonJustReleased(ebiten.MouseButtonLeft),
RightMouseUp: inpututil.IsMouseButtonJustReleased(ebiten.MouseButtonRight),
SpawnPressed: inpututil.IsKeyJustReleased(KeySpawnRequest),
}
}
|