sBlock Block[15][15];
GLfloat block_Color[1][2];
void BlockEngine::InitBlocks(void)
{
// Red - 0
block_Color[0][0] = 1.0f;
block_Color[0][1] = 0.0f;
block_Color[0][2] = 0.0f;
// Green - 1
block_Color[1][0] = 0.0f;
block_Color[1][1] = 1.0f;
block_Color[1][2] = 0.0f;
srand(static_cast<unsigned>(time(0)));
for (unsigned int loop=0; loop<16; loop++)
{
for (unsigned int loop1=0; loop1<16; loop1++)
{
unsigned int Random_Color = (rand()%2);
Block[loop][loop1].BlockColor[0]=block_Color[Random_Color][0];
Block[loop][loop1].BlockColor[1]=block_Color[Random_Color][1];
Block[loop][loop1].BlockColor[2]=block_Color[Random_Color][2];
}
}
}
void BlockEngine::CreateBlocks(void)
{
GLfloat X = 0.0f;
GLfloat Y = -40.0f;
for (unsigned int loop=0; loop<16; loop++)
{
X=-40;
Y+=40;
for (unsigned int loop1=0; loop1<16; loop1++)
{
X+=40;
glColor3f(Block[loop][loop1].BlockColor[0],
Block[loop][loop1].BlockColor[1],
Block[loop][loop1].BlockColor[2]);
cGUIEngine->CreateImage(tex_Block.TextureID, 40, 40, X, Y);
}
}
}
When the blocks are actually made during the main loop, they come all different colors. I only set red and green as you can see. In VC++ I added a watch to see if the right values were going into the variables and they were, but when they come out in the end they are all different colors. Does anyone have any ideas why this would happen? Are there any problems with my code?
Thanks.
EDIT: sBlock struct:
struct sBlock {
GLfloat BlockColor[2];
};
- DarkNebula
[edited by - DarkNebula on November 22, 2003 7:58:39 PM]