Случайное размещение прямоугольников в SFML

0

Как я мог бы случайным образом разместить 13 квадратов, прямоугольников на экране 800x600? Я попытался использовать:

    rand() % 800 + 1
    rand() % 600 + 1

Но это не совсем сработало. Он размещал кубы вокруг экрана друг над другом и с экрана. Есть идеи? Если вам нужно больше кода, я могу отредактировать его, чтобы показать вам.

Теги:
frameworks
sfml

1 ответ

1
Лучший ответ

Если вы не хотите, чтобы ваши прямоугольники перекрывались друг с другом или рисовались за пределами окна, конечно, это не очень хорошо работает.

Прежде всего, если вы хотите увидеть все свои прямоугольники, не производите их ранжирование между [0,800] и [0,600] потому что размещение их на высоте 800 или 600 будет явно скрывать их. Вместо этого для каждого прямоугольника вам нужно будет рандомизировать с 800-width и 600-height в качестве верхнего предела.

Во-вторых, чтобы избежать перекрытия прямоугольников, вам придется поместить их по одному и проверять каждый раз, когда вы размещаете новый, который не находится поверх всех прямоугольников, которые вы разместили ранее. Пока он перекрывается, выберите другую случайную позицию. Обратите внимание, что в зависимости от размера ваших прямоугольников и случайных позиций вы можете сделать это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню