我目前正在嘗試製作一個非常簡單的蛇遊戲,並且在創建蛇廣場時遇到了一些問題。現在我通過創建2個三角形來創建方塊。我已經創建了蛇應該像這樣移動的網格: OpenGL 3.2顏色GL_TRIANGLES
正方形的顏色在開始時實際上是黃色的。然後我試着用紅色來製作蛇。但是我所有的方格都變成紅色。
我創造蛇是這樣的:
void drawSnake()
{
mat4 modelView;
modelView = Translate(1,0,0);
glUniformMatrix4fv(modelViewUniform, 1, GL_TRUE, modelView);
GLuint indices2[3] = {0,1,2}; //, 0, 5, 1, 0};
glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_INT, indices2);
modelView = Translate(1, 0, 0);
glUniformMatrix4fv(modelViewUniform, 1, GL_TRUE, modelView);
GLuint indices6[3] = {4,3,2}; //, 0, 5, 1, 0};
glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_INT, indices6);
//vec2 blockCoordinate = vec2(-t + 1, t - 1);
//blockCol[i] = blockCoordinate;
}
這裏定義的顏色:
void loadGeometry() {
vec3 color(1.0f, 1.0f, 0.0f);
Vertex rectangleData[rectangleSize] = {
{ vec2(-1.0, -1.0), color },
{ vec2(1.0, -1.0), color },
{ vec2(1.0, 1.0), color },
{ vec2(-1.0, 1.0), color },
{ vec2(-1.0, -1.0), color }
};
shapeVertexArrayBuffer = loadBufferData(rectangleData, rectangleSize);
vec3 color1(1.0f, 0.0f, 0.0f);
Vertex rectangleData1[rectangleSize] = {
{ vec2(-1.0, -1.0), color1 },
{ vec2(1.0, -1.0), color1 },
{ vec2(1.0, 1.0), color1 },
{ vec2(-1.0, 1.0), color1 },
{ vec2(-1.0, -1.0), color1 }
};
shapeSnakeArrayBuffer = loadBufferData(rectangleData1, rectangleSize);
}
所以,問題是爲什麼我所有的廣場變成紅色時,我明明用另一種顏色加載緩存數據?
我畫他們這樣在顯示():
void display() {
glClearColor(0.0, 0.0, 0.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
glUseProgram(shaderProgram);
mat4 projection = Ortho2D(-15.0f, 15.0f, -15.0f, 15.0f);
glUniformMatrix4fv(projectionUniform, 1, GL_TRUE, projection);
glBindVertexArray(shapeVertexArrayBuffer);
glBindVertexArray(shapeSnakeArrayBuffer);
drawBlock();
drawSnake();
glutSwapBuffers();
}
而且你的問題是什麼? – datenwolf
我在最後添加了一個問題抱歉。 – WYS
你怎麼畫矩形? – user1118321