73 lines
3.1 KiB
Go
73 lines
3.1 KiB
Go
package worldMap
|
|
|
|
const (
|
|
mapWidth = 24
|
|
mapHeight = 24
|
|
texWidth = 64
|
|
texHeight = 64
|
|
)
|
|
|
|
var level = [mapWidth][mapHeight]int{
|
|
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
|
|
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
{1, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 3, 0, 3, 0, 3, 0, 0, 0, 1},
|
|
{1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
{1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1},
|
|
{1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
{1, 0, 0, 0, 0, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 3, 0, 3, 0, 3, 0, 0, 0, 1},
|
|
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
{1, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
{1, 4, 0, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
{1, 4, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
{1, 4, 0, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
{1, 4, 0, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
{1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
{1, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
|
|
}
|
|
|
|
func GetMap() [24][24]int {
|
|
return level
|
|
}
|
|
|
|
var texture = make([][]uint32, 8)
|
|
|
|
func GetTextures() [][]uint32 {
|
|
for i := range texture {
|
|
texture[i] = make([]uint32, texWidth*texHeight)
|
|
}
|
|
var tex0, tex5 int
|
|
for x := range texWidth {
|
|
for y := range texHeight {
|
|
xorcolor := (x * 256 / texWidth) ^ (y * 256 / texHeight)
|
|
ycolor := y * 256 / texHeight
|
|
xycolor := y*128/texHeight + x*128/texWidth
|
|
if x != y && x != texWidth-y {
|
|
tex0 = 1
|
|
} else {
|
|
tex0 = 0
|
|
}
|
|
texture[0][texWidth*y+x] = uint32(65536 * 254 * tex0) //flat red texture with black cross
|
|
texture[1][texWidth*y+x] = uint32(xycolor + 256*xycolor + 65536*xycolor) //sloped greyscale
|
|
texture[2][texWidth*y+x] = uint32(256*xycolor + 65536*xycolor) //sloped yellow gradient
|
|
texture[3][texWidth*y+x] = uint32(xorcolor + 256*xorcolor + 65536*xorcolor) //xor greyscale
|
|
texture[4][texWidth*y+x] = uint32(256 * xorcolor)
|
|
if x%16 != 0 && y%16 != 0 {
|
|
tex5 = 1
|
|
} else {
|
|
tex5 = 0
|
|
} //xor green
|
|
texture[5][texWidth*y+x] = uint32(65536 * 192 * tex5) //red bricks
|
|
texture[6][texWidth*y+x] = uint32(65536 * ycolor) //red gradient
|
|
texture[7][texWidth*y+x] = uint32(128 + 256*128 + 65536*128) //flat grey texture
|
|
}
|
|
}
|
|
return texture
|
|
}
|