diff options
| author | Physcik <mynameisgennadiy@vk.com> | 2026-01-12 00:41:09 +0500 |
|---|---|---|
| committer | Physcik <mynameisgennadiy@vk.com> | 2026-01-12 00:41:09 +0500 |
| commit | 2cf8b5cad01cb67b71d51834ca8d048cfddd69e6 (patch) | |
| tree | 409ba57e7a372b9834cd89048427019b991ea78c /engine/Components/Player.go | |
| parent | 4c614ef14ebf4c3cd16c1e96283dc3763b9b0d0a (diff) | |
Character creation start
Diffstat (limited to 'engine/Components/Player.go')
| -rw-r--r-- | engine/Components/Player.go | 50 |
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 +} |
