CodingLand/pkg/internal/land/object.go
2024-07-18 17:46:36 +08:00

36 lines
560 B
Go

package land
import "github.com/veandco/go-sdl2/sdl"
type Object interface {
Create()
Update()
AddChild(child Object)
GetChildren() []Object
}
type DrawableObject interface {
Draw(pen *sdl.Renderer)
}
type BaseObject struct {
Children []Object
}
func (p *BaseObject) Create() {}
func (p *BaseObject) Update() {
// Update each child
for _, child := range p.Children {
child.Update()
}
}
func (p *BaseObject) AddChild(child Object) {
p.Children = append(p.Children, child)
}
func (p *BaseObject) GetChildren() []Object {
return p.Children
}