Как добавить цикл 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 };