Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;渲染形状_C++_Codeblocks - Fatal编程技术网

C++ C++;渲染形状

C++ C++;渲染形状,c++,codeblocks,C++,Codeblocks,我试图在特定区域内生成形状。我正在制作的游戏分辨率为1024x768,但游戏板在屏幕中央仅占768x768 目前,我可以随机生成形状,并且不超过最大宽度和最大高度限制。但是,形状仍然可以渲染到离游戏板太远的地方。我尝试添加最小宽度和最小高度,但我不确定在x=和y=阶段应用这一点 我已经在下面包含了相关代码 我可以向该代码添加/修改什么以使形状仅限于游戏板 谢谢 const size_t MaxShapes {5}; const unsigned int MaxScale {5}; const u

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

目前,我可以随机生成形状,并且不超过最大宽度和最大高度限制。但是,形状仍然可以渲染到离游戏板太远的地方。我尝试添加最小宽度和最小高度,但我不确定在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;
}
const size\u t MaxShapes{5};
常量无符号整数MaxScale{5};
常量无符号整数最小宽度=128;
常量无符号整数最大宽度=896;
const unsigned int MINUMUM_HEIGHT=0;
常量无符号整数最大高度=768;
boolplaystate::onCreate()
{
蛇。推回(新艾斯纳克);
蛇背()->设置位置(位置(40,40));
蛇。推回(新玩家);
蛇背()->设置位置(位置(20,20));
双x,y;
对于(无符号形状=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之间)。

非常感谢!那真是一种享受。你不认为你知道如何防止它们可能重叠吗?你可能应该把它作为一个单独的问题发布。一定要仔细考虑这个问题,包括你已经尝试过的(就像你在这个问题上所做的那样)。如果我回答了你的问题,你介意接受答案吗?:)当然,如果我做不到,我会尝试防止重叠,并创建一个新的帖子。谢谢你的回答:)