From 06dd690345a02ad5f158138b2d6597220b716e38 Mon Sep 17 00:00:00 2001 From: ewy Date: Thu, 13 Aug 2026 13:59:25 +0200 Subject: add stuff --- objs/cursor.go | 31 +++++++++++++++++++++++++++++++ objs/paddle.go | 26 ++++++++++++++++++++++++++ objs/root.go | 25 +++++++++++++++++++++++++ 3 files changed, 82 insertions(+) create mode 100644 objs/cursor.go create mode 100644 objs/paddle.go create mode 100644 objs/root.go (limited to 'objs') diff --git a/objs/cursor.go b/objs/cursor.go new file mode 100644 index 0000000..b1fdca3 --- /dev/null +++ b/objs/cursor.go @@ -0,0 +1,31 @@ +package objs + +import ( + "github.com/Zyko0/go-sdl3/sdl" + "ponger/ecs" + "ponger/input" +) + +type Cursor struct { + *ecs.GameObject +} + +func (c *Cursor) Render(renderer *sdl.Renderer) { + renderer.SetDrawColor(255, 0, 0, 255) + renderer.RenderPoint(c.Position.X, c.Position.Y) +} + +func (c *Cursor) Process(ev input.Event) { + c.Position.X += ev.Dx + c.Position.Y += ev.Dy +} + +func (c *Cursor) GO() *ecs.GameObject { + return c.GameObject +} + +func NewCursor() ecs.IsGameObject { + return &Cursor{ + GameObject: &ecs.GameObject{}, + } +} diff --git a/objs/paddle.go b/objs/paddle.go new file mode 100644 index 0000000..e997ff9 --- /dev/null +++ b/objs/paddle.go @@ -0,0 +1,26 @@ +package objs + +import ( + "github.com/Zyko0/go-sdl3/sdl" + "ponger/ecs" + "ponger/input" +) + +type Paddle struct { + *ecs.GameObject +} + +func (p *Paddle) Process(ev input.Event) { + //TODO implement me + panic("implement me") +} + +func NewPaddle() *ecs.GameObject { + p := &Paddle{ + GameObject: &ecs.GameObject{ + Position: sdl.FPoint{}, + Children: nil, + }, + } + return p.GameObject +} diff --git a/objs/root.go b/objs/root.go new file mode 100644 index 0000000..59e0c6a --- /dev/null +++ b/objs/root.go @@ -0,0 +1,25 @@ +package objs + +import ( + "github.com/Zyko0/go-sdl3/sdl" + "ponger/ecs" +) + +type Root struct { + *ecs.GameObject +} + +func (root *Root) Render(r *sdl.Renderer) { + r.SetDrawColor(255, 255, 255, 255) + r.Clear() +} + +func NewRoot(children ...ecs.IsGameObject) ecs.IsGameObject { + r := &Root{ + GameObject: &ecs.GameObject{ + Position: sdl.FPoint{}, + Children: children, + }, + } + return r.GameObject +} -- cgit v1.3.1