Być może wystarczyłoby dodać u ciebie jedną linie.
#include <GL/glut.h>
int Map[ 10 ][ 12 ] = {
{ 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1 },
{ 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1 },
{ 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1 },
{ 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1 },
{ 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1 },
{ 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1 },
{ 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1 },
{ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } };
void drawCube( void )
{
glRotatef( - 20, 1, 0, 0 );
glRotatef( - 10, 0, 0, 1 );
for( int y = 0; y < 10; y++ )
{
for( int x = 0; x < 12; x++ )
{
if( Map[ y ][ x ] == 1 )
{
glPushMatrix();
glColor4f( 1, 0, 1, 0 );
glTranslatef( x, - y, 0 );
glutSolidCube( 1 );
}
glPopMatrix();
}
}
}
void display( void )
{
glClearColor( 0.0, 0.0, 0.0, 1.0 );
glClear( GL_COLOR_BUFFER_BIT );
glLoadIdentity();
glEnable( GL_TEXTURE_2D );
glTranslatef( - 5, 6, - 15 );
drawCube();
glutSwapBuffers();
}
void reshape( int w, int h )
{
glViewport( 0, 0,( GLsizei ) w,( GLsizei ) h );
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
gluPerspective( 60,( GLfloat ) w /( GLfloat ) h, 1.0, 100.0 );
glMatrixMode( GL_MODELVIEW );
}
int main( int argc, char ** argv )
{
glutInit( & argc, argv );
glutInitDisplayMode( GLUT_DOUBLE );
glutInitWindowSize( 800, 600 );
glutInitWindowPosition( 0, 0 );
glutCreateWindow( "OpenGL" );
glutDisplayFunc( display );
glutIdleFunc( display );
glutReshapeFunc( reshape );
glutMainLoop();
return 0;
}