To not use the magic numbers when iterating array, we can initialize the array using standard c++ library.
First we need to include the array on top of the file:
#include <array>
When initializing the array we need to reference it a little bit differently when choosing this approach:
std::array<AnimData, 5> nebulae;
This creates an array of 5 elements of type AnimData called nebulae.
And then we can get the size of the array in for loops like this:
for (int i = 0; i < (int)nebulae.size(); i++)
Notice that I have casted the size of nebulae to integers, because the function returns type long which is a lot bigger number type compared to integer.
And when we will initialize the different positions of nebulae, we can use a new for loop instead of adding those manually. EDIT: Just went through the next video where this will be a bonus challenge, so don’t check this if you haven’t watched it!
nebulae[0].pos.x = windowDimensions[0];
// index i starts at 1 this time!
for (int i = 1; i < (int)nebulae.size(); i++)
{
nebulae[i].pos.x = nebulae[i - 1].pos.x + 300;
}
Here I’ll get the previous nebula’s position decrementing the index value by 1.