本文整理汇总了C++中Direction::native_value方法的典型用法代码示例。如果您正苦于以下问题:C++ Direction::native_value方法的具体用法?C++ Direction::native_value怎么用?C++ Direction::native_value使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Direction
的用法示例。
在下文中一共展示了Direction::native_value方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetNeighbour
Position GetNeighbour(const Position& p, const Direction dir)
{
/* Note that every 2nd row is shifted by half a triangle to the left, therefore:
Modifications for the dirs:
current row: Even Odd
W -1|0 -1|0
D NW -1|-1 0|-1
I NE 0|-1 1|-1
R E 1|0 1|0
SE 0|1 1|1
SW -1|1 0|1
*/
switch(dir.native_value())
{
case Direction::WEST: return Position(p.x - 1, p.y);
case Direction::NORTHWEST: return Position(p.x - !(p.y & 1), p.y - 1);
case Direction::NORTHEAST: return Position(p.x + (p.y & 1), p.y - 1);
case Direction::EAST: return Position(p.x + 1, p.y);
case Direction::SOUTHEAST: return Position(p.x + (p.y & 1), p.y + 1);
default: RTTR_Assert(dir == Direction::SOUTHWEST); return Position(p.x - !(p.y & 1), p.y + 1);
}
}