summaryrefslogtreecommitdiff
path: root/engine/Components/Player.go
diff options
context:
space:
mode:
Diffstat (limited to 'engine/Components/Player.go')
-rw-r--r--engine/Components/Player.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/engine/Components/Player.go b/engine/Components/Player.go
new file mode 100644
index 0000000..38a4636
--- /dev/null
+++ b/engine/Components/Player.go
@@ -0,0 +1,50 @@
+package components
+
+import (
+ coreobjects "github.com/DegustatorPonos/RuinesOfRafdolon/CoreObjects"
+ rl "github.com/gen2brain/raylib-go/raylib"
+)
+
+type Player struct {
+ Position rl.Vector2
+ Texture rl.Texture2D
+}
+
+func (base *Player) Create(_ coreobjects.SceneManager) {
+}
+
+func (base *Player) Destroy() {
+}
+
+func (base *Player) Update() {
+ var speed = 150 * rl.GetFrameTime()
+ if rl.IsKeyDown(rl.KeyW) {
+ base.Position.Y -= speed
+ }
+ if rl.IsKeyDown(rl.KeyS) {
+ base.Position.Y += speed
+ }
+ if rl.IsKeyDown(rl.KeyA) {
+ base.Position.X -= speed
+ }
+ if rl.IsKeyDown(rl.KeyD) {
+ base.Position.X += speed
+ }
+}
+
+func (base *Player) Draw() {
+ rl.DrawTexture(base.Texture,
+ int32(base.Position.X),
+ int32(base.Position.Y),
+ rl.White)
+}
+
+func (base Player) SnapCamera (camera *rl.Camera2D) {
+ var offset = rl.Vector2 {
+ X: float32(base.Texture.Width) / 2,
+ Y: float32(base.Texture.Height) / 2,
+ }
+ camera.Target = rl.Vector2Add(base.Position, offset)
+ camera.Offset.X = float32(rl.GetScreenWidth()) / 2
+ camera.Offset.Y = float32(rl.GetScreenHeight()) / 2
+}