2014-02-24 3 views
0

무작위로 13 개의 정사각형을 800x600 크기의 화면에 배치 할 수 있습니까? 나는 다음을 사용하려고 시도했다 :무작위로 사각형을 SFML에 배치

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

그러나 그것은 효과가 없었다. 화면 주위에 큐브를 놓고 서로 겹치고 화면에서 벗어납니다. 어떤 아이디어? 더 많은 코드가 필요한 경우이 코드를 편집하여 표시 할 수 있습니다.

답변

1

직사각형이 서로 겹치거나 창 밖으로 그려지기를 원하지 않는다면 당연히 잘 작동하지 않습니다.

먼저 분명히을 숨길 800 폭 600 높이에 그들을 배치하기 때문에 [0,800][0,600] 사이에 자신의 위치를 ​​무작위로하지 않는, 모든 당신의 사각형을보고 싶은 경우,의. 대신 각 사각형에 대해 800-width600-height을 상한으로 무작위로 지정해야합니다.

둘째, 겹치는 사각형을 피하려면 하나씩 배치하고 이전에 배치 한 모든 사각형 위에 새 사각형을 배치 할 때마다 확인해야합니다. 겹치는 동안 다른 임의의 위치를 ​​선택하십시오. 직사각형의 크기와 임의의 위치에 따라이 작업을 수행하지 못할 수도 있습니다.

관련 문제