C ++渲染形状

时间:2015-04-13 15:28:03

标签: c++ codeblocks

我试图在特定区域内生成形状。我正在制作的游戏的分辨率为1024x768,但游戏板在屏幕中央仅占用768x768。

目前,我可以让形状随机生成并且不超过MAXIMUM_WIDTH和MAXIMUM_HEIGHT约束。但是,这些形状仍然可以渲染到离游戏板不太远的地方。我尝试添加MINIMUM_WIDTH和MINUMUM_HEIGHT,但我不知道在x =和y =阶段中应用它的位置

我已在下面提供相关代码。

我可以添加/修改此代码以使形状仅限于游戏板吗?

感谢。

const size_t MaxShapes {5};
const unsigned int MaxScale {5};
const unsigned int MINIMUM_WIDTH = 128;
const unsigned int MAXIMUM_WIDTH = 896;
const unsigned int MINUMUM_HEIGHT = 0;
const unsigned int MAXIMUM_HEIGHT = 768;

bool PlayState::onCreate()
{
    snakes_.push_back(new AISnake);
    snakes_.back()->setPosition(Position(40,40));
    snakes_.push_back(new PlayerSnake);
    snakes_.back()->setPosition(Position(20,20));

    double x, y;
    for(unsigned shape = 0;shape < MaxShapes;shape++)
    {
        x = (double)(rand() % MAXIMUM_WIDTH);
        y = (double)(rand() % MAXIMUM_HEIGHT);

        shapes_.push_back(Triangle({x, y}));

    }
    return true;
}

1 个答案:

答案 0 :(得分:0)

你可以尝试

x = (double)((rand() % (MAXIMUM_WIDTH - MINIMUM_WIDTH)) + MINIMUM_WIDTH);
y = (double)((rand() % (MAXIMUM_HEIGHT - MINIMUM_HEIGHT)) + MINIMUM_HEIGHT);

假设您要查找5到15之间的随机数.5和15之间的差值为10.因此,您首先找到0到10之间的随机数,然后将其添加到5以使其恢复到适当的范围(5到15之间)。