Game Development Reference
In-Depth Information
Shape drawing
Now that we are familiar with the render routine, let's render some shapes on the screen.
We will start with the basic shapes and explore the alternatives later on. When we want to
draw a shape, we have to create the object first. Here is the initialization code for two
shapes. Place it just before the game loop.
A few new classes make an appearance in this example— CircleShape , Rect-
angleShape , and Vector2f .
You can probably guess what the Vector2f class is for—it is a 2D vector which holds
two floats . There are also classes such as Vector2i (for integers), Vector2u (for
unsigned integers ), Vector3i (for 3D vectors which hold integers), and Vector3f
(3D vectors which hold floats). We can even create our own 2D and 3D vectors, which
hold custom types, by using the template classes sf::Vector2<class> and
sf::Vector3<class> .
CircleShape , RectangleShape , and ConvexShape derive from the abstract class
Shape , which is defined by a set number of vertices (points). The CircleShape is just
a regular polygon with a set number of vertices. We can specify how detailed the circle
should be with the second argument in the constructor, which is optional, with a default
value of 30. On the other hand, RectangleShape always has four vertices. The con-
structors of both shapes take their dimensions—the radius of the circle and the width and
height of the rectangle.
ConvexShape is a shape for which we have to specify the vertices explicitly. There isn't
a restriction on the number of vertices, but they have to form a convex shape, otherwise the
shape will not be drawn correctly. Search WWH ::

Custom Search