【发布时间】:2020-12-30 07:13:23
【问题描述】:
我在代码块中的 SFML 中生成形状并验证它是否与另一个形状重叠以及是否确实重叠然后尝试在另一个位置再次生成它时遇到问题。
代码如下:
srand(time(0));
CircleShape circleObjectArray[50];
for(int i = 0; i < 50; i++)
{
for(int j = i - 1; j < 49; j++)
{
circleObjectArray[i] = CircleShape(rand() % 50 + 5);
circleObjectArray[i].setPosition(rand() % 1870 + 50, rand() % 1030 + 50);
circleObjectArray[i].setFillColor(Color(rand() % 255,rand() % 255,rand() % 255));
if(circleObjectArray[i].getGlobalBounds().intersects( circleObjectArray[j].getGlobalBounds()))
{
srand(time(0));
circleObjectArray[i].setPosition(rand() % 1870 + 50, rand() % 1030 + 50);
cout << "overlap" << endl;
}
}
}
如果我使用 while 而不是 if 语句 if 将进入无限循环。
有没有我可以完成这项工作?
非常感谢您的宝贵时间:D
【问题讨论】:
标签: c++ codeblocks sfml