本文整理汇总了C#中Grid.GetPoints方法的典型用法代码示例。如果您正苦于以下问题:C# Grid.GetPoints方法的具体用法?C# Grid.GetPoints怎么用?C# Grid.GetPoints使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Grid
的用法示例。
在下文中一共展示了Grid.GetPoints方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Grid
public Grid(Grid g)
{
//Vector2 setSize, Vector2 setPosition, GPoint.PType fillType
xyMax = g.xyMax;
gridType = g.gridType;
//bump up the size to create room for the buffer;
size = g.size;
//translate
position = g.position;
//Debug.Log ("creating a grid FROM a grid " + g.GetSize ().x + "by" + g.GetSize ().y + " grid, filled with " + g.gridType);
//Debug.Log ("actually a " + size.x + "by" + size.y + " grid");
//create [,] of empty points
Initialize ();
//add a buffer
MarkBuffer ();
//fill the center
//Fill (gridType);
UpdatePoints (g.GetPoints ());
}
示例2: Generate
public override TerrainGrid Generate(Vector size, FreqDict freqs = null, Random rand = null)
{
freqs = freqs ?? _defaultFreqs;
UpdateFreqs(ref freqs);
NormalizeFreqs(ref freqs);
rand = rand ?? new Random();
var terrain = new Grid<TerrainType>(size);
var heightGrid = _topographyGenerator.Generate(terrain.Size, rand);
heightGrid = _filters.OpenClose(heightGrid);
var sortedPoints = heightGrid.GetPoints().ToList();
sortedPoints.Sort((lhs, rhs) => (heightGrid[lhs] - heightGrid[rhs]));
int numTiles = size.x * size.y;
int numWaterTiles = (int)(numTiles * freqs[TerrainTypes.Water]);
var waterTiles = sortedPoints.Take(numWaterTiles);
foreach (var point in waterTiles)
terrain[point] = TerrainTypes.Water;
int numMountainTiles = (int)(numTiles * freqs[TerrainTypes.Mountain]);
var mountainTiles = sortedPoints.Skip(numTiles - numMountainTiles);
foreach (var point in mountainTiles)
terrain[point] = TerrainTypes.Mountain;
var landTiles = new HashSet<Vector>(terrain.GetPoints());
landTiles.ExceptWith(waterTiles);
landTiles.ExceptWith(mountainTiles);
AddLandTiles(ref terrain, landTiles.ToList(), freqs, rand);
return terrain;
}
示例3: PostProcess
private static List<GPoint> PostProcess (Grid g, GPoint.PType scanType, GPoint.PType fillType)
{
List<GPoint> processedPoints = new List<GPoint> ();
Debug.Log ("scanning " + g.GetPoints (scanType).Count + "unique points");
List<Direction[]> ds = new List<Direction[]> ();
ds.Add (new Direction[]{Direction.n, Direction.ne, Direction.e});
ds.Add (new Direction[]{Direction.e, Direction.se, Direction.s});
ds.Add (new Direction[]{Direction.s, Direction.sw, Direction.w});
ds.Add (new Direction[]{Direction.w, Direction.nw, Direction.n});
foreach (GPoint gp in g.GetPoints(scanType)) {
//List<bool> values = new List<bool> ();
ScanPoint scan = new ScanPoint (gp.GetPosition ());
if (ProcessPoint (g, scan, scanType, ds)) {
processedPoints.Add (new GPoint (scan.Position (), fillType));
}
}
Debug.Log (processedPoints.Count + " processed points added");
return processedPoints;
}
示例4: RotateTiles
public static void RotateTiles (Grid g)
{
Debug.Log ("solving tile rotation...");
foreach (GPoint gp in g.GetPoints()) {
switch (gp.GetPType ()) {
case GPoint.PType.TILE_BUILDING:
g.UpdatePointDirection (gp.GetPosition (), (CalculateDirection (g, gp)));
break;
case GPoint.PType.TILE_HOUSE:
g.UpdatePointDirection (gp.GetPosition (), (CalculateDirection (g, gp)));
break;
default:
//nothing
break;
}
}
}
示例5: UpdatePoints
public void UpdatePoints(Grid g)
{
foreach (GPoint gp in g.GetPoints()) {
UpdatePoint ((gp.GetPosition () + g.GetPosition ()), gp.GetPType ());
}
}