私は現在、非常に単純なスネーク ゲームを作成しようとしていますが、スネーク スクエアの作成に問題があります。現在、2 つの三角形を作成して正方形を作成しています。ヘビが次のように移動するグリッドを作成しました。
正方形の色は、最初は実際には黄色でした。次に、赤い色のヘビを作成しようとしました。しかし、私の四角はすべて赤くなりました。
次のようにヘビを作成します。
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);
}
問題は、明らかに別の色のバッファ データをロードしたときに、すべての正方形が赤くなったのはなぜですか?
display() で次のように描画します。
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();
}