Created a Tiled pattern
This commit is contained in:
@@ -26,8 +26,26 @@ func (pattern Checkered) AtWhen (x, y, width, height int) (c color.RGBA) {
|
||||
y %= pattern.CellHeight
|
||||
|
||||
if n % 2 == 0 {
|
||||
return pattern.First.AtWhen(x, y, pattern.CellWidth, pattern.CellHeight)
|
||||
return pattern.First.AtWhen (
|
||||
x, y, pattern.CellWidth, pattern.CellHeight)
|
||||
} else {
|
||||
return pattern.Second.AtWhen(x, y, pattern.CellWidth, pattern.CellHeight)
|
||||
return pattern.Second.AtWhen (
|
||||
x, y, pattern.CellWidth, pattern.CellHeight)
|
||||
}
|
||||
}
|
||||
|
||||
// Tiled is a pattern that tiles another pattern accross a grid.
|
||||
type Tiled struct {
|
||||
Pattern
|
||||
CellWidth, CellHeight int
|
||||
}
|
||||
|
||||
// AtWhen satisfies the Pattern interface.
|
||||
func (pattern Tiled) AtWhen (x, y, width, height int) (c color.RGBA) {
|
||||
x %= pattern.CellWidth
|
||||
y %= pattern.CellHeight
|
||||
if x < 0 { x += pattern.CellWidth }
|
||||
if y < 0 { y += pattern.CellHeight }
|
||||
return pattern.Pattern.AtWhen (
|
||||
x, y, pattern.CellWidth, pattern.CellHeight)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user