58 lines
1.4 KiB
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
|
|
}
|