在SFML中随机放置矩形

时间:2014-02-24 23:58:21

标签: c++ frameworks sfml

如何在800x600的屏幕上随机放置13个方块,矩形?我试图使用:

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

但它没有完全奏效。它将立方体放在屏幕上,彼此重叠并离开屏幕。有任何想法吗?如果您需要更多代码,我可以对其进行编辑以向您展示。

1 个答案:

答案 0 :(得分:1)

如果您不希望矩形相互重叠或在窗外绘制,当然它不能很好地工作。

首先,如果您确实希望看到所有您的矩形,请不要在[0,800][0,600]之间随机化他们的位置,因为将它们放置在800宽度或600高度显然会隐藏它们。相反,对于每个矩形,您必须以800-width600-height作为上限进行随机化。

其次,为避免重叠矩形,您必须逐个放置它们,并在每次放置一个新的矩形时检查它是否位于您之前放置的所有矩形的顶部。虽然它是重叠的,但选择另一个随机位置。请注意,根据矩形的大小和随机位置,可能无法执行此操作。