本文整理汇总了C++中DrawList::Add方法的典型用法代码示例。如果您正苦于以下问题:C++ DrawList::Add方法的具体用法?C++ DrawList::Add怎么用?C++ DrawList::Add使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DrawList
的用法示例。
在下文中一共展示了DrawList::Add方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Draw
// Draw the asteroids, centered on the given location.
void AsteroidField::Draw(DrawList &draw, const Point ¢er, double zoom) const
{
for(const Asteroid &asteroid : asteroids)
asteroid.Draw(draw, center, zoom);
for(const shared_ptr<Minable> &minable : minables)
draw.Add(*minable);
}
示例2: Point
void AsteroidField::Asteroid::Draw(DrawList &draw, const Point ¢er, const Point ¢erVelocity) const
{
Point pos = location - center;
pos = Point(remainder(pos.X(), WRAP), remainder(pos.Y(), WRAP));
draw.Add(animation, pos, angle.Unit() * .5, velocity - centerVelocity);
}
示例3: fmod
// Draw any instances of this asteroid that are on screen.
void AsteroidField::Asteroid::Draw(DrawList &draw, const Point ¢er, double zoom) const
{
// Any object within this range must be drawn.
Point topLeft = center + (Screen::TopLeft() - size) / zoom;
Point bottomRight = center + (Screen::BottomRight() + size) / zoom;
// Figure out the position of the first instance of this asteroid that is to
// the right of and below the top left corner of the screen.
double startX = fmod(position.X() - topLeft.X(), WRAP);
startX += topLeft.X() + WRAP * (startX < 0.);
double startY = fmod(position.Y() - topLeft.Y(), WRAP);
startY += topLeft.Y() + WRAP * (startY < 0.);
// Draw any instances of this asteroid that are on screen.
for(double y = startY; y < bottomRight.Y(); y += WRAP)
for(double x = startX; x < bottomRight.X(); x += WRAP)
draw.Add(*this, Point(x, y));
}