本文整理汇总了C++中BlockInfo::IsEdge方法的典型用法代码示例。如果您正苦于以下问题:C++ BlockInfo::IsEdge方法的具体用法?C++ BlockInfo::IsEdge怎么用?C++ BlockInfo::IsEdge使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BlockInfo
的用法示例。
在下文中一共展示了BlockInfo::IsEdge方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GenerateHallway
void BlockInfo::GenerateHallway(FRandomStream* randStream)
{
bool canRemove = IsRemoveable();
bIsSolid = false;
if (!canRemove)
return;
bool needsGeneration = true;
do
{
//get a random direction
int direction = randStream->RandRange(0, 3);
EGridDirection::Type gridDirection;
switch (direction)
{
case 0:
gridDirection = EGridDirection::GD_UP;
break;
case 1:
gridDirection = EGridDirection::GD_RIGHT;
break;
case 2:
gridDirection = EGridDirection::GD_DOWN;
break;
case 3:
gridDirection = EGridDirection::GD_LEFT;
break
}
BlockInfo* randBlock = GetAdjacent(gridDirection);//get a block in a random direction
if (!randBlock || randBlock->IsEdge())//check if that block is removeable
{
continue;
}
randBlock->GenerateHallway(randStream);
needsGeneration = false;
} while (needsGeneration);
}
示例2: Generate
void BlockInfo::Generate(FRandomStream* randStream)
{
bIsSolid = false;
bool needsGeneration = true;
int genTryCount = 0;
do
{
//get a random direction
int direction = randStream->RandRange(0, 3);
EGridDirection::Type gridDirection;
switch (direction)
{
case 0:
gridDirection = EGridDirection::GD_UP;
break;
case 1:
gridDirection = EGridDirection::GD_RIGHT;
break;
case 2:
gridDirection = EGridDirection::GD_DOWN;
break;
case 3:
gridDirection = EGridDirection::GD_LEFT;
break
}
BlockInfo* randBlock = GetAdjacent(gridDirection);//get a block in a random direction
if (!randBlock || !randBlock->IsRemoveable() || randBlock->IsEdge())//check if that block is removeable
{
genTryCount++;
continue;
}
randBlock->Generate(randStream);
genTryCount++;
}
while (needsGeneration && genTryCount < 4);
}