Как добавить цикл for в проекте DirectX 10?

Прежде чем обратиться за помощью, я хотел бы упомянуть, что я очень плохо знаком с 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 вне SimpleVertex, и он работает. Как бы я добавил цикл для создания моего круга? Спасибо за помощь нубу. Я бы подождал до рабочего дня, но сейчас рабочий день, и я был на нем все выходные.

1 ответ

Решение

У вас есть 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 };
Другие вопросы по тегам