本文整理汇总了C++中Point2D::SetValues方法的典型用法代码示例。如果您正苦于以下问题:C++ Point2D::SetValues方法的具体用法?C++ Point2D::SetValues怎么用?C++ Point2D::SetValues使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Point2D
的用法示例。
在下文中一共展示了Point2D::SetValues方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: BuildTower
Float BuildTower(Script * script)
{
if (script->VerifyArguments(2) == true)
{
Word * targetWord = script->GetNextWord();
Word * posWord = script->GetNextWord();
Point2D position(0, 0);
Point2D * pos = (Point2D *)(uint32)posWord->value;
if (pos != NULL)
{
position.SetValues(pos->GetX(), pos->GetY());
}
else
{
return false;
}
if ((IntervalCheck(position.GetX(), 1, GRID_SIZE - 2) == true) && (IntervalCheck(position.GetY(), 1, GRID_SIZE - 2) == true))
{
if (targetWord->type == POINTER)
{
Object * target = script->GetTarget(targetWord);
if ((target != NULL) && (target->CheckType(OBJ_TYPE_TOWER) == true))
{
Grid * grid = WorldGame.GetGrid();
Tower * tower = (Tower *)target;
//To bypass grid auto-filling
tower->SetState(false);
Point2D towerCoords = tower->GetPosition();
towerCoords.SetValues((towerCoords.GetX() - 80)/32, (towerCoords.GetY() - 80)/32);
grid->SetPath(towerCoords, 0);
if (BuildTower(tower->GetTowerType(), position, true) == true)
{
Tower * newTower = grid->GetData(Point2D(position.GetX(), position.GetY()));
tower->SetState(true);
grid->FindPath(Origin);
newTower->Copy(*tower);
newTower->SetUInt32Value(TOWER_VAR_BUILD_TIME, GetGameTime());
return true;
}
else
{
tower->SetState(true);
grid->FindPath(Origin);
}
}
}
else if ((targetWord->type == NUMERIC) && (IntervalCheck(targetWord->value, 1, GetTowerDataSize()) == true))
{
return (BuildTower(targetWord->value, position, true));
}
}
}
return false;
}
示例2: PrintText
void Font::PrintText(const char * text, const Point2D& pos, const Rect& bounds, uint8 format) const
{
Point2D offset;
glPushMatrix();
glLoadIdentity();
glColor(Black);
glTranslated(pos.GetX(), pos.GetY(), 0);
uint8 justify = format & 0x03;
Float lineOffset = (int32)(CalculateLineLength(text, bounds.GetWidth(), 0)/2.0 * justify);
offset.SetValues(offset.GetX() + lineOffset, offset.GetY());
glTranslated(lineOffset, 0.0, 0);
uint32 textPos = 0;
while (textPos < strlen(text))
{
bool wordBegin = true;
uint32 wordLength = GetWordLength(text, textPos);
uint32 wordSpace = GetWordSpace(text, textPos);
for (uint32 i = textPos; i < textPos + wordLength; i++)
{
if (text[i] == '&')
{
ParseSpecial(text, i, true);
continue;
}
else if (((text[i] == '\n') || ((text[i] == '\\') && (text[i+1] == 'n')) || (offset.GetX() > bounds.GetWidth())) || ((wordSpace + offset.GetX() >= bounds.GetWidth()) && (wordSpace < bounds.GetWidth()) && (wordBegin == true)))
{
glTranslated(-offset.GetX(), baseSize, 0);
offset.SetValues(0, offset.GetY() + baseSize);
if (offset.GetY() > bounds.GetHeight())
{
glPopMatrix();
return;
}
lineOffset = (int32)(CalculateLineLength(text, bounds.GetWidth(), i + 1)/2.0 * justify);
offset.SetValues(offset.GetX() + lineOffset, offset.GetY());
glTranslated(lineOffset, 0.0, 0);
if (text[i] == '\n')
{
continue;
}
else if ((text[i] == '\\') && (text[i+1] == 'n'))
{
i++;
continue;
}
}
glCallList(text[i] + displayLists);
offset.SetValues(offset.GetX() + width[text[i]], offset.GetY());
wordBegin = false;
}
offset.SetValues(offset.GetX() + baseSize, offset.GetY());
glTranslated(baseSize, 0, 0);
textPos += wordLength + 1;
}
glPopMatrix();
}