summaryrefslogtreecommitdiff
path: root/engine/GameObjects
diff options
context:
space:
mode:
Diffstat (limited to 'engine/GameObjects')
-rw-r--r--engine/GameObjects/World.go68
1 files changed, 68 insertions, 0 deletions
diff --git a/engine/GameObjects/World.go b/engine/GameObjects/World.go
new file mode 100644
index 0000000..9ce16b0
--- /dev/null
+++ b/engine/GameObjects/World.go
@@ -0,0 +1,68 @@
+package gameobjects
+
+import (
+ coreobjects "github.com/DegustatorPonos/RuinesOfRafdolon/CoreObjects"
+ rl "github.com/gen2brain/raylib-go/raylib"
+)
+
+var texture rl.Texture2D
+
+type Tile struct {
+}
+
+type Field struct {
+ Tiles [][]Tile
+ Camera rl.Camera2D
+}
+
+func (base *Field) Create(_ coreobjects.SceneManager) {
+ var image = rl.LoadImage("tile.png")
+ texture = rl.LoadTextureFromImage(image)
+ rl.UnloadImage(image)
+
+ base.Camera = rl.Camera2D{}
+ base.Camera.Target = rl.Vector2 { X: 0, Y: 0 }
+ base.Camera.Offset = rl.Vector2 { X: 0, Y: 0 }
+ base.Camera.Rotation = 0
+ base.Camera.Zoom = 2
+}
+
+func (base *Field) Destroy() {
+ rl.UnloadTexture(texture)
+}
+
+func (base *Field) Update() {
+ if rl.IsKeyDown(rl.KeyW) {
+ base.Camera.Target.Y -= 0.3
+ }
+ if rl.IsKeyDown(rl.KeyS) {
+ base.Camera.Target.Y += 0.3
+ }
+ if rl.IsKeyDown(rl.KeyA) {
+ base.Camera.Target.X -= 0.3
+ }
+ if rl.IsKeyDown(rl.KeyD) {
+ base.Camera.Target.X += 0.3
+ }
+}
+
+func (base *Field) Draw() {
+ rl.BeginMode2D(base.Camera)
+ defer rl.EndMode2D()
+
+ for x, r := range base.Tiles {
+ for y, _ := range r {
+ rl.DrawTexture(texture, (int32(x) * 32), int32(y) * 32, rl.White)
+ }
+ }
+}
+
+func CreateField(x int, y int) Field {
+ var tiles = make([][]Tile, x)
+ for i := range tiles {
+ tiles[i] = make([]Tile, y)
+ }
+ return Field {
+ Tiles: tiles,
+ }
+}