Relative Positioning
Place child images relative to a parent placement. Useful for overlays, badges, and anchored UI elements.
Parent and Child
go
// Parent image
parentCmd := kgp.NewTransmitDisplay().
ImageID(100).
PlacementID(1).
Format(kgp.FormatPNG).
TransmitDirect(parentData).
Build()
fmt.Print(parentCmd.Encode())
// Child: 10 cells right, 0 cells down from parent
childCmd := kgp.NewPut(100).
PlacementID(2).
RelativeTo(100, 1, 10, 0).
Build()
fmt.Print(childCmd.Encode())RelativeTo Parameters
go
RelativeTo(parentImageID, parentPlacementID uint32, offsetH, offsetV int)parentImageID— Image ID of the parentparentPlacementID— Placement ID of the parentoffsetH— Horizontal offset in cells (positive = right)offsetV— Vertical offset in cells (positive = down)
Badge on Avatar
go
// Avatar (parent)
avatarCmd := kgp.NewTransmitDisplay().
ImageID(50).
PlacementID(1).
Format(kgp.FormatPNG).
TransmitDirect(avatarData).
Build()
fmt.Print(avatarCmd.Encode())
// Transmit badge (no display)
fmt.Print(kgp.NewTransmit().
ImageID(51).
Format(kgp.FormatPNG).
TransmitDirect(badgeData).
Build().Encode())
// Badge (child) — top-right of avatar
badgeCmd := kgp.NewPut(51).
PlacementID(1).
DisplaySize(2, 2).
RelativeTo(50, 1, 8, -1).
Build()
fmt.Print(badgeCmd.Encode())