本文整理汇总了C++中sf::Shape::SetScale方法的典型用法代码示例。如果您正苦于以下问题:C++ Shape::SetScale方法的具体用法?C++ Shape::SetScale怎么用?C++ Shape::SetScale使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sf::Shape
的用法示例。
在下文中一共展示了Shape::SetScale方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
void GUI::Game::Object::draw(sf::RenderWindow& window, boost::shared_ptr<const ::Game::Player> viewer, bool selected) {
// TODO: Load real graphics and track animations.
static sf::Shape tmp, circle;
if (!tmp.GetNbPoints()) {
tmp.AddPoint(-0.8, -0.4);
tmp.AddPoint(-0.0, -0.4);
tmp.AddPoint(-0.0, -0.8);
tmp.AddPoint(+0.8, -0.0);
tmp.AddPoint(-0.0, +0.8);
tmp.AddPoint(-0.0, +0.4);
tmp.AddPoint(-0.8, +0.4);
tmp.SetOutlineWidth(0.15);
}
if (!circle.GetNbPoints()) {
circle = sf::Shape::Circle(0, 0, 1, sf::Color(0xff, 0xff, 0xff, 0x44), 0.2, sf::Color(0xff, 0xff, 0xff, 0xdd));
}
Vector2<SIUnit::Position> pos = object->getPosition();
double r = object->getObjectType()->radius.getDouble();
if (object->getOwner() == viewer) {
circle.SetColor(sf::Color(0x33, 0x33, 0xcc));
tmp.SetColor(sf::Color(0x33, 0x33, 0xcc));
} else {
circle.SetColor(sf::Color(0xcc, 0x33, 0x00));
tmp.SetColor(sf::Color(0xdd, 0x00, 0x00));
}
if (selected) {
circle.SetScale(r, r);
circle.SetPosition(pos.x.getDouble(), pos.y.getDouble());
window.Draw(circle);
}
tmp.SetScale(r, r);
tmp.SetPosition(pos.x.getDouble(), pos.y.getDouble());
tmp.SetRotation(-Math::toDegrees(object->getDirection().getDouble()));
window.Draw(tmp);
}