初始化后重新填充阵列

Array refill after initialization

本文关键字:填充 阵列 新填充 初始化      更新时间:2023-10-16

可能有人在不到一分钟的时间内就能纠正一些小问题。

但基本上,如果对象的类型与默认类型"1"不同,我会尝试重置数组中的值。获取错误atm,关于初始值设定项列表不能使用

   GLfloat foodAmbient[] = { 0.3f, 0.6f, 1.0f, 1.0f };
    GLfloat foodSpecular[] = { 0.3f, 0.6f, 1.0f, 1.0f };
    GLfloat foodDiffuse[] = { 5.3f, 0.3f, 1.0f, 1.0f };
    GLfloat foodShininess[] = { 50.0 };
    if (type == 2)
    {
        foodDiffuse = { 0.3f, 0.3f, 5.3f, 1.0f };
    }
    glMaterialfv(GL_FRONT, GL_AMBIENT, foodAmbient);
    glMaterialfv(GL_FRONT, GL_SPECULAR, foodSpecular);
    glMaterialfv(GL_FRONT, GL_DIFFUSE, foodDiffuse);
foodDiffuse = { 0.3f, 0.3f, 5.3f, 1.0f };

是错误的,因为您不能为这样的数组赋值。该语法只能用于初始化数组。初始化数组后,只能更改数组的各个元素。

将该行替换为:

foodDiffuse[0] = 0.3f;
foodDiffuse[1] = 0.3f;
foodDiffuse[2] = 5.3f;
foodDiffuse[3] = 1.0f;