Files
RGB/geometry/square.go
2023-11-19 20:53:35 -05:00

94 lines
2.0 KiB
Go

package geom
import (
"image/color"
"github.com/hajimehoshi/ebiten/v2"
)
var GrayFill = color.RGBA{R: 128, G: 128, B: 128, A: 255}
var RedFill = color.RGBA{R: 200, G: 0, B: 0, A: 255}
var GreenFill = color.RGBA{R: 0, G: 200, B: 0, A: 255}
var BlueFill = color.RGBA{R: 0, G: 0, B: 200, A: 255}
var LightRedFill = color.RGBA{R: 255, G: 104, B: 103, A: 255}
var LightGreenFill = color.RGBA{R: 144, G: 255, B: 143, A: 255}
var LightBlueFill = color.RGBA{R: 150, G: 150, B: 255, A: 255}
var RGBColourMap = map[int]color.Color{
0: RedFill,
1: GreenFill,
2: BlueFill,
}
var AllColourMap = map[int]color.Color{
0: GrayFill,
1: RedFill,
2: GreenFill,
3: BlueFill,
4: LightRedFill,
5: LightBlueFill,
6: LightGreenFill,
}
var LightRGBMap = map[int]color.Color{
0: LightRedFill,
1: LightGreenFill,
2: LightBlueFill,
}
type Square struct {
x int
y int
clr color.Color
width int
height int
Img *ebiten.Image
RGBColourIndex int
}
func MakeSquare(size int) Square {
image := ebiten.NewImage(size, size)
defaultColor := color.RGBA{R: 128, G: 128, B: 128, A: 255}
image.Fill(defaultColor)
sq := Square{clr: defaultColor, Img: image, width: size, height: size, x: 0, y: 0, RGBColourIndex: -1}
return sq
}
func (sq *Square) ChangeColour(newColor color.Color) {
sq.clr = newColor
sq.Img.Fill(newColor)
}
func (sq *Square) SetPosition(x int, y int) {
sq.x = x
sq.y = y
}
func (sq *Square) X() int {
return sq.x
}
func (sq *Square) Y() int {
return sq.y
}
func (sq *Square) moveRightOnGrid() {
newX := sq.x + GameGrid.squareSize + GameGrid.squareSpacing
sq.x = newX
}
func (sq *Square) moveLeftOnGrid() {
newX := sq.x - GameGrid.squareSize - GameGrid.squareSpacing
sq.x = newX
}
func (sq *Square) moveDownOnGrid() {
newY := sq.y + GameGrid.squareSize + GameGrid.squareSpacing
sq.y = newY
}
func (sq *Square) moveUpOnGrid() {
newY := sq.y - GameGrid.squareSize - GameGrid.squareSpacing
sq.y = newY
}