forked from vova616/GarageEngine
/
Camera.go
48 lines (42 loc) · 1.15 KB
/
Camera.go
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
37
38
39
40
41
42
43
44
45
46
47
48
package zumbies
import (
"github.com/LaPingvino/GarageEngine/engine"
//"log"
"github.com/LaPingvino/GarageEngine/engine/input"
)
type CameraController struct {
engine.BaseComponent
Speed float64
}
func NewCameraCtl(speed float64) *CameraController {
return &CameraController{engine.NewComponent(), speed}
}
func (sp *CameraController) Update() {
t := sp.GameObject().Transform()
if input.KeyDown('A') {
t.Translatef(float32(-sp.Speed*engine.DeltaTime()), 0)
}
if input.KeyDown('D') {
t.Translatef(float32(sp.Speed*engine.DeltaTime()), 0)
}
if input.KeyDown('S') {
t.Translatef(0, float32(-sp.Speed*engine.DeltaTime()))
}
if input.KeyDown('W') {
t.Translatef(0, float32(sp.Speed*engine.DeltaTime()))
}
if input.KeyDown('E') {
engine.CurrentCamera().SetSize(engine.CurrentCamera().Size() + float32(engine.DeltaTime()))
}
if input.KeyDown('Q') {
engine.CurrentCamera().SetSize(engine.CurrentCamera().Size() - float32(engine.DeltaTime()))
}
if input.KeyDown('Z') {
a := t.Angle()
t.SetWorldRotationf(a + float32(engine.DeltaTime())*10)
}
if input.KeyDown('X') {
a := t.Angle()
t.SetWorldRotationf(a - float32(engine.DeltaTime())*10)
}
}