ballsoffline/map.go

58 lines
1.4 KiB
Go

package main
import (
"slices"
rl "github.com/gen2brain/raylib-go/raylib"
)
func sliceMap(mapLocation string) []string {
var lines []string
for i := 0; i < len(mapLocation); i += 64 {
end := i + 64
if end > len(mapLocation) {
end = len(mapLocation)
}
lines = append(lines, mapLocation[i:end])
}
return lines
}
func drawMap(slicedMap []string) {
for y := range slicedMap {
for x := 0; x < len(slicedMap[y]); x++ {
tilePositionX := int32(x*squareSize - int(cameraPos.X))
tilePositionY := int32(y*squareSize - int(cameraPos.Y))
rl.DrawTexture(loadedTextures[0], tilePositionX, tilePositionY, rl.White)
switch slicedMap[y][x] {
case 49: //path
rl.DrawTexture(loadedTextures[1], tilePositionX, tilePositionY, rl.White)
case 50: //door
rl.DrawTexture(loadedTextures[2], tilePositionX, tilePositionY, rl.White)
case 51: //glass
rl.DrawTexture(loadedTextures[3], tilePositionX, tilePositionY, rl.White)
case 52: //wall
rl.DrawTexture(loadedTextures[4], tilePositionX, tilePositionY, rl.White)
case 53: //liquid
rl.DrawTexture(loadedTextures[5], tilePositionX, tilePositionY, rl.White)
}
}
}
}
func getBlocks(slicedMap []string, blocks []int) []rl.Vector2 {
walls := []rl.Vector2{}
for y := range slicedMap {
for x := 0; x < len(slicedMap[y]); x++ {
if slices.Contains(blocks, int(slicedMap[y][x])) {
walls = append(walls, rl.Vector2{X: float32(x), Y: float32(y)})
}
}
}
return walls
}