如何在 DirectX 10 项目中添加 for 循环?

How to add a for loop in a DirectX 10 project?

在寻求帮助之前,我想说明一下我是 DirectX 的新手,是的,我确实知道如何用 C++ 编写代码。但是当我尝试完成作业时出现错误。

家庭作业很简单。画一个圆(至少使用 20 个三角形)并在圆上放置纹理。没问题。但我必须使用 For 循环创建顶点。这是我目前所拥有的:

double x = 0.1;
double y = 1.0;
double z = 0.5;
double xin = 0.3;
double yin = -0.1;

// Create vertex buffer
SimpleVertex vertices[] =
{

    for (int i = 0; i < 4; i++) {
        XMFLOAT3(0.0f, 0.0f, zf),
        XMFLOAT3(xf, yf, zf),
        XMFLOAT3((x+xin)f, (y+yin)f, zf),
    }


};

我想画圈的代码还没全部加完呢。这更像是一个测试 运行。但是我的 for 循环出错了。它似乎不想阅读 for, expected 表达式。我尝试将 For 循环放在 SimpleVertex 之外并且它有效。 我将如何添加一个 for 循环来制作我的圈子? 感谢您帮助菜鸟。 我会等待办公时间,但今天是劳动节,我整个周末都在忙。

你在声明中有你的 for 循环,你不能这样做。您需要先声明 vertices,然后使用 for 循环初始化它:

int main()
{
    // Declare your vertices:
    const auto maxVertices = 20;
    SimpleVertex vertices[maxVertices];

    // Initialise the vertices in a for loop
    for (int i = 0; i < maxVertices; ++i)
    {
        vertices[i].Position = /* calculate position */
    }
}

您可能会使用 i 来计算其中一个位置,例如:

vertices[i].Position = { i * x, y, z };