Switched to Direction enum
This commit is contained in:
113
Assets/Test stuff/MazeDefinitionGenerator.cs
Normal file
113
Assets/Test stuff/MazeDefinitionGenerator.cs
Normal file
@@ -0,0 +1,113 @@
|
||||
|
||||
using Marro.PacManUdon;
|
||||
using UdonSharp;
|
||||
using UnityEngine;
|
||||
using VRC.SDKBase;
|
||||
using VRC.Udon;
|
||||
|
||||
public class MazeDefinitionGenerator : UdonSharpBehaviour
|
||||
{
|
||||
void Start()
|
||||
{
|
||||
GetMazeMap();
|
||||
}
|
||||
|
||||
private void GetMazeMap()
|
||||
{
|
||||
var pellets = GetComponentsInChildren<Pellet>(includeInactive: true);
|
||||
|
||||
var width = 28;
|
||||
var height = 31;
|
||||
int[] map = new int[width * height];
|
||||
int[] pelletLocations = new int[pellets.Length];
|
||||
var collisionMap = GetCollisionMap();
|
||||
|
||||
for (int i = 0; i < map.Length; i++)
|
||||
{
|
||||
if (collisionMap[i])
|
||||
{
|
||||
map[i] = (int)PacManTileType.Wall;
|
||||
}
|
||||
else
|
||||
{
|
||||
map[i] = (int)PacManTileType.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < pellets.Length; i++)
|
||||
{
|
||||
Pellet pellet = pellets[i];
|
||||
var position = GridMover.PositionToGrid(new Vector2(pellet.transform.localPosition.x, - pellet.transform.localPosition.y));
|
||||
var index = (int)position.x + (int)position.y * width;
|
||||
map[index] = i;
|
||||
pelletLocations[i] = index;
|
||||
}
|
||||
|
||||
var result = "";
|
||||
for (int i = 0; i < map.Length; i++)
|
||||
{
|
||||
if (map[i] < 0)
|
||||
{
|
||||
result += $"{map[i]:00}, ";
|
||||
}
|
||||
else
|
||||
{
|
||||
result += $"{map[i]:000}, ";
|
||||
}
|
||||
|
||||
if (i % width == width - 1)
|
||||
{
|
||||
result += "\n";
|
||||
}
|
||||
}
|
||||
|
||||
Debug.Log(result);
|
||||
|
||||
result = "";
|
||||
for (int i = 0; i < pelletLocations.Length; i++)
|
||||
{
|
||||
result += $"{pelletLocations[i]:000}, ";
|
||||
|
||||
if (i % 16 == 15)
|
||||
{
|
||||
result += "\n";
|
||||
}
|
||||
}
|
||||
|
||||
Debug.Log(result);
|
||||
}
|
||||
|
||||
public static bool[] GetCollisionMap() => new bool[] {
|
||||
true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true ,
|
||||
true, false, false, false, false, false, false, false, false, false, false, false, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, true ,
|
||||
true, false, true, true, true, true, false, true, true, true, true, true, false, true, true, false, true, true, true, true, true, false, true, true, true, true, false, true ,
|
||||
true, false, true, false, false, true, false, true, false, false, false, true, false, true, true, false, true, false, false, false, true, false, true, false, false, true, false, true ,
|
||||
true, false, true, true, true, true, false, true, true, true, true, true, false, true, true, false, true, true, true, true, true, false, true, true, true, true, false, true ,
|
||||
true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true ,
|
||||
true, false, true, true, true, true, false, true, true, false, true, true, true, true, true, true, true, true, false, true, true, false, true, true, true, true, false, true ,
|
||||
true, false, true, true, true, true, false, true, true, false, true, true, true, true, true, true, true, true, false, true, true, false, true, true, true, true, false, true ,
|
||||
true, false, false, false, false, false, false, true, true, false, false, false, false, true, true, false, false, false, false, true, true, false, false, false, false, false, false, true ,
|
||||
true, true, true, true, true, true, false, true, true, true, true, true, false, true, true, false, true, true, true, true, true, false, true, true, true, true, true, true ,
|
||||
false, false, false, false, false, true, false, true, true, true, true, true, false, true, true, false, true, true, true, true, true, false, true, false, false, false, false, false ,
|
||||
false, false, false, false, false, true, false, true, true, false, false, false, false, false, false, false, false, false, false, true, true, false, true, false, false, false, false, false ,
|
||||
false, false, false, false, false, true, false, true, true, false, true, true, true, true, true, true, true, true, false, true, true, false, true, false, false, false, false, false ,
|
||||
true, true, true, true, true, true, false, true, true, false, true, false, false, false, false, false, false, true, false, true, true, false, true, true, true, true, true, true ,
|
||||
false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false ,
|
||||
true, true, true, true, true, true, false, true, true, false, true, false, false, false, false, false, false, true, false, true, true, false, true, true, true, true, true, true ,
|
||||
false, false, false, false, false, true, false, true, true, false, true, true, true, true, true, true, true, true, false, true, true, false, true, false, false, false, false, false ,
|
||||
false, false, false, false, false, true, false, true, true, false, false, false, false, false, false, false, false, false, false, true, true, false, true, false, false, false, false, false ,
|
||||
false, false, false, false, false, true, false, true, true, false, true, true, true, true, true, true, true, true, false, true, true, false, true, false, false, false, false, false ,
|
||||
true, true, true, true, true, true, false, true, true, false, true, true, true, true, true, true, true, true, false, true, true, false, true, true, true, true, true, true ,
|
||||
true, false, false, false, false, false, false, false, false, false, false, false, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, true ,
|
||||
true, false, true, true, true, true, false, true, true, true, true, true, false, true, true, false, true, true, true, true, true, false, true, true, true, true, false, true ,
|
||||
true, false, true, true, true, true, false, true, true, true, true, true, false, true, true, false, true, true, true, true, true, false, true, true, true, true, false, true ,
|
||||
true, false, false, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, false, false, false, true ,
|
||||
true, true, true, false, true, true, false, true, true, false, true, true, true, true, true, true, true, true, false, true, true, false, true, true, false, true, true, true ,
|
||||
true, true, true, false, true, true, false, true, true, false, true, true, true, true, true, true, true, true, false, true, true, false, true, true, false, true, true, true ,
|
||||
true, false, false, false, false, false, false, true, true, false, false, false, false, true, true, false, false, false, false, true, true, false, false, false, false, false, false, true ,
|
||||
true, false, true, true, true, true, true, true, true, true, true, true, false, true, true, false, true, true, true, true, true, true, true, true, true, true, false, true ,
|
||||
true, false, true, true, true, true, true, true, true, true, true, true, false, true, true, false, true, true, true, true, true, true, true, true, true, true, false, true ,
|
||||
true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true ,
|
||||
true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user