- procedure glDominoe();
- begin
- glBegin(GL_QUADS);
- glColor3f(1,1,0);
- glVertex3f(-1.0,-2.0, 0.0);
- glVertex3f(-1.0, 2.0, 0.0);
- glVertex3f(1.0,2.0, 0.0);
- glVertex3f(1.0,-2.0, 0.0);
- glColor3f(1,1,0);
- glVertex3f(-1.0,-2.0, -0.5);
- glVertex3f(-1.0, 2.0, -0.5);
- glVertex3f(1.0,2.0, -0.5);
- glVertex3f(1.0,-2.0, -0.5);
- glRotatef(90,1,0,0);
- glColor3f(1,1,0);
- glVertex3f(1.0,-2.0, 0.0);
- glVertex3f(1.0, 2.0, 0.0);
- glVertex3f(1.0,2.0, -0.5);
- glVertex3f(1.0,-2.0, -0.5);
- glColor3f(0.8,0.8,0.2);
- glVertex3f(-1.0,-2.0, 0.0);
- glVertex3f(-1.0, 2.0, 0.0);
- glVertex3f(-1.0,2.0, -0.5);
- glVertex3f(-1.0,-2.0, -0.5);
- glRotatef(90,0,1,0);
- glColor3f(0.8,0.8,0.2);
- glVertex3f(-1.0,2.0, 0.0);
- glVertex3f(-1.0, 2.0, -0.5);
- glVertex3f(1.0,2.0, -0.5);
- glVertex3f(1.0,2.0, 0.0);
- glColor3f(1,1,0);
- glVertex3f(-1.0,-2.0, 0.0);
- glVertex3f(-1.0, -2.0, -0.5);
- glVertex3f(1.0,-2.0, -0.5);
- glVertex3f(1.0,-2.0, 0.0);
- glEnd();
- end;
- procedure glDominoe2();
- begin
- glBegin(GL_QUADS);
- glColor3f(1,1,0);
- glVertex3f(-1.0,-2.0, 0.0);
- glVertex3f(-1.0, -0.25, 0.0);
- glVertex3f(1.0,-0.25, 0.0);
- glVertex3f(1.0,-2.0, 0.0);
- glColor3f(1,0,0);
- glVertex3f(-1.0,-0.25, 0.0);
- glVertex3f(-1.0, 0.25, 0.0);
- glVertex3f(1.0,0.25, 0.0);
- glVertex3f(1.0,-0.25, 0.0);
- glColor3f(1,1,0);
- glVertex3f(-1.0,0.25, 0.0);
- glVertex3f(-1.0, 2.0, 0.0);
- glVertex3f(1.0,2.0, 0.0);
- glVertex3f(1.0,0.25, 0.0);
- glColor3f(1,1,0);
- glVertex3f(-1.0,-2.0, -0.5);
- glVertex3f(-1.0, -0.25, -0.5);
- glVertex3f(1.0,-0.25, -0.5);
- glVertex3f(1.0,-2.0, -0.5);
- glColor3f(1,0,0);
- glVertex3f(-1.0,-0.25, -0.5);
- glVertex3f(-1.0, 0.25, -0.5);
- glVertex3f(1.0,0.25, -0.5);
- glVertex3f(1.0,-0.25, -0.5);
- glColor3f(1,1,0);
- glVertex3f(-1.0,0.25, -0.5);
- glVertex3f(-1.0, 2.0, -0.5);
- glVertex3f(1.0,2.0, -0.5);
- glVertex3f(1.0,0.25, -0.5);
- glRotatef(90,1,0,0);
- glColor3f(1,1,0);
- glVertex3f(1.0,-2.0, 0.0);
- glVertex3f(1.0, -0.25, 0.0);
- glVertex3f(1.0,-0.25, -0.5);
- glVertex3f(1.0,-2.0, -0.5);
- glColor3f(1,0,0);
- glVertex3f(1.0,-0.25, 0.0);
- glVertex3f(1.0, 0.25, 0.0);
- glVertex3f(1.0,0.25, -0.5);
- glVertex3f(1.0,-0.25, -0.5);
- glColor3f(1,1,0);
- glVertex3f(1.0,0.25, 0.0);
- glVertex3f(1.0, 2.0, 0.0);
- glVertex3f(1.0,2.0, -0.5);
- glVertex3f(1.0,0.25, -0.5);
- glColor3f(0.8,0.8,0.2);
- glVertex3f(-1.0,-2.0, 0.0);
- glVertex3f(-1.0, -0.25, 0.0);
- glVertex3f(-1.0,-0.25, -0.5);
- glVertex3f(-1.0,-2.0, -0.5);
- glColor3f(0.8,0.0,0.2);
- glVertex3f(-1.0,-0.25, 0.0);
- glVertex3f(-1.0, 0.25, 0.0);
- glVertex3f(-1.0,0.25, -0.5);
- glVertex3f(-1.0,-0.25, -0.5);
- glColor3f(0.8,0.8,0.2);
- glVertex3f(-1.0,0.25, 0.0);
- glVertex3f(-1.0, 2.0, 0.0);
- glVertex3f(-1.0,2.0, -0.5);
- glVertex3f(-1.0,0.25, -0.5);
- glRotatef(90,0,1,0);
- glColor3f(0.8,0.8,0.2);
- glVertex3f(-1.0,2.0, 0.0);
- glVertex3f(-1.0, 2.0, -0.5);
- glVertex3f(1.0,2.0, -0.5);
- glVertex3f(1.0,2.0, 0.0);
- glColor3f(1,1,0);
- glVertex3f(-1.0,-2.0, 0.0);
- glVertex3f(-1.0, -2.0, -0.5);
- glVertex3f(1.0,-2.0, -0.5);
- glVertex3f(1.0,-2.0, 0.0);
- glEnd();
- end;
- procedure glDraw;
- begin
- glClearColor(0,0,0,0);
- glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
- glloadidentity;
- gltranslatef(posvect[0],posvect[1],viewwidth);
- glRotatef(RotateX, 1, 0, 0);
- glRotatef(RotateY, 0, 1, 0);
- glRotatef(RotateZ, 0, 0, 1);
- glscalef(0.3,0.3,0.3);
- glDominoe2;
- gltranslatef(0,0,2);
- gldominoe;
- end;
- while not finished do
- begin
- if (PeekMessage(msg, 0, 0, 0, PM_REMOVE)) then
- begin
- if (msg.message = WM_QUIT) then
- finished := True
- else
- begin
- TranslateMessage(msg);
- DispatchMessage(msg);
- end;
- end
- else
- begin
- viewwidth:=-10;
- glDraw();
- SwapBuffers(h_DC);
- ProcessKeys;
- end;
- end;
- glKillWnd(FALSE);
- Result := msg.wParam;
- end;