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

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

本文关键字:添加 for 循环 项目 DirectX      更新时间:2023-10-16

在我寻求帮助之前,我想提一下,我是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,期望一个表达式。我试着把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 };