本文整理汇总了C#中Area.GetPoint方法的典型用法代码示例。如果您正苦于以下问题:C# Area.GetPoint方法的具体用法?C# Area.GetPoint怎么用?C# Area.GetPoint使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Area
的用法示例。
在下文中一共展示了Area.GetPoint方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: _placeTerrainObjects
private void _placeTerrainObjects(Area area, System.Random rng)
{
TerrainData data = area.Owner;
Block start = area.GetPoint(0);
HashSet<Block> visited = new HashSet<Block>();
Queue<Block> frontier = new Queue<Block>();
frontier.Enqueue(start);
int iterationsSince = 0;
Block next;
while (frontier.Count > 0)
{
next = frontier.Dequeue();
if (iterationsSince <= 0)
{
if (rng.NextDouble() < m_chanceToSpawnObject)
{
iterationsSince = m_minDistanceBetweenObjects;
next.Value = m_objectIds[rng.Next(m_objectIds.Length)] + 1;
}
}
iterationsSince--;
for (int x = next.Location.X - 1; x <= next.Location.X + 1; x++)
{
for (int y = next.Location.Y - 1; y <= next.Location.Y + 1; y++)
{
Block block = data.GetBlock(new Point(x, y));
if (block != null && block.Value != 0 && !visited.Contains(block))
{
visited.Add(block);
frontier.Enqueue(block);
}
}
}
}
}