本文整理汇总了C++中Direction::getValue方法的典型用法代码示例。如果您正苦于以下问题:C++ Direction::getValue方法的具体用法?C++ Direction::getValue怎么用?C++ Direction::getValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Direction
的用法示例。
在下文中一共展示了Direction::getValue方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
void Resource<Dim, Type, Data>::move(Direction<Dim> _dir, double _time)
{
if(_time < 0.)
{
logger(Logger::WARNING) << "Negative time, fix to 0";
_time = 0.;
}
Coordonate<Dim, Type> tcoord = Object<Dim, Type>::coord;
// New position on the specified direction
tcoord[_dir.getValue().first] += _dir.getValue().second*(velocity*_time);
if(true) // TEST IN SPACE + NOT COLLIDING
Object<Dim, Type>::coord = tcoord;
}
示例2: move
/**
* Eine Figur verschieben. Dabei werden die Zellenrahmen beachtet.
* @param figure Die zu verschiebende Figur.
* @param direction Richtung, in die die Figur verschoben werden soll.
*/
void GameController::move(Figure* figure, Direction& direction) {
unsigned int x = figure->getX();
unsigned int y = figure->getY();
if (field->allowsBorderMovement(x, y, direction)) {
switch (direction.getValue()) {
case Direction::UP: y--; break;
case Direction::LEFT: x--; break;
case Direction::DOWN: y++; break;
case Direction::RIGHT: x++; break;
}
}
// Durch einen Tunnel verlassen -> auf dem anderen Ende wieder einsetzen
x = (x + Field::FIELD_WIDTH) % Field::FIELD_WIDTH;
y = (y + Field::FIELD_HEIGHT) % Field::FIELD_HEIGHT;
figure->setX(x);
figure->setY(y);
figure->setDirection(direction);
// Wenn Pacman bewegt wurde: Nachsehen, ob sich auf dem neuen
// Feld Essen befindet.
if (figure == pacman) {
if (field->getCell(pacman->getX(), pacman->getY())->isFood()) {
points += DOT_POINTS;
foodCount--;
}
field->getCell(pacman->getX(), pacman->getY())->setFood(false);
}
}