From d804d0467399c821a05832a96ae4780ef69fb1bf Mon Sep 17 00:00:00 2001 From: Physcik Date: Tue, 6 Jan 2026 18:53:57 +0500 Subject: Project init --- engine/GameObjects/World.go | 68 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 engine/GameObjects/World.go (limited to 'engine/GameObjects') 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, + } +} -- cgit v1.3