示例#1
0
        private static void DrawDetails()
        {
            // детали спереди
            GL.Color3(Color.Coral);
            GL.BindTexture(TextureTarget.Texture2D, TankGameWindow.TextureIds[3]);

            GL.Begin(PrimitiveType.Quads);
            MakeSquare(detailsPoints[1], detailsPoints[2], detailsPoints[3], detailsPoints[4]);
            MakeSquare(detailsPoints[1], detailsPoints[2], detailsPoints[3], detailsPoints[4], true);
            GL.End();

            GL.BindTexture(TextureTarget.Texture2D, TankGameWindow.TextureIds[0]);
            GL.Begin(PrimitiveType.Quads);
            MakeSquare(detailsPoints[1], detailsPoints[2], detailsPoints[6], detailsPoints[5]);
            MakeSquare(detailsPoints[1], detailsPoints[4], detailsPoints[8], detailsPoints[5]);
            MakeSquare(detailsPoints[4], detailsPoints[8], detailsPoints[7], detailsPoints[3]);
            MakeSquare(detailsPoints[3], detailsPoints[7], detailsPoints[6], detailsPoints[2]);

            MakeSquare(detailsPoints[1], detailsPoints[2], detailsPoints[6], detailsPoints[5], true);
            MakeSquare(detailsPoints[1], detailsPoints[4], detailsPoints[8], detailsPoints[5], true);
            MakeSquare(detailsPoints[4], detailsPoints[8], detailsPoints[7], detailsPoints[3], true);
            MakeSquare(detailsPoints[3], detailsPoints[7], detailsPoints[6], detailsPoints[2], true);
            GL.End();

            GL.BindTexture(TextureTarget.Texture2D, TankGameWindow.TextureIds[1]);
            Painter.PaintCylinder(Axis.Y, new Vector3(0, 0.19f, -0.4f), 0.12f, 0.08f, Color.Aqua, Color.Aqua);

            // держатель орудия

            GL.BindTexture(TextureTarget.Texture2D, TankGameWindow.TextureIds[5]);
            GL.Begin(PrimitiveType.Quads);

            MakeSquare(details2Points[1], details2Points[2], details2Points[3], details2Points[4]);
            MakeSquare(details2Points[2], details2Points[5], details2Points[6], details2Points[7]);
            MakeSquare(details2Points[8], details2Points[9], details2Points[10], details2Points[11]);
            MakeSquare(details2Points[11], details2Points[12], details2Points[13], details2Points[14]);
            MakeSquare(details2Points[1], details2Points[2], details2Points[3], details2Points[4], true);
            MakeSquare(details2Points[2], details2Points[5], details2Points[6], details2Points[7], true);
            MakeSquare(details2Points[8], details2Points[9], details2Points[10], details2Points[11], true);
            MakeSquare(details2Points[11], details2Points[12], details2Points[13], details2Points[14], true);
            MakeSquare(details2Points[1], details2Points[5], details2Points[10], details2Points[14]);
            MakeSquare(details2Points[3], details2Points[4], details2Points[13], details2Points[12]);
            MakeSquare(details2Points[6], details2Points[7], details2Points[8], details2Points[9]);
            MakeSquare(details2Points[5], details2Points[6], details2Points[9], details2Points[10]);
            MakeSquare(details2Points[3], details2Points[7], details2Points[8], details2Points[12]);
            MakeSquare(details2Points[1], details2Points[5], details2Points[10], details2Points[14], true);
            MakeSquare(details2Points[3], details2Points[4], details2Points[13], details2Points[12], true);
            MakeSquare(details2Points[6], details2Points[7], details2Points[8], details2Points[9], true);
            MakeSquare(details2Points[5], details2Points[6], details2Points[9], details2Points[10], true);
            MakeSquare(details2Points[3], details2Points[7], details2Points[8], details2Points[12], true);

            GL.End();

            GL.BindTexture(TextureTarget.Texture2D, TankGameWindow.TextureIds[5]);
            Painter.PaintCube(new Vector3(0, 0.2f, 0.45f), 0.2f);
        }
示例#2
0
        private static void DrawGun()
        {
            GL.Disable(EnableCap.Lighting);
            GL.Disable(EnableCap.Texture2D);

            var sideColor = Color.FromArgb(72, 72, 72);
            var faceColor = Color.FromArgb(39, 39, 39);

            Painter.PaintCylinder(Axis.Z, new Vector3(0, 0.42f, -0.1f), 0.018f, 0.028f, 1.7f, faceColor, sideColor);
            Painter.PaintCylinder(Axis.Z, new Vector3(0, 0.42f, 0.53f), 0.038f, 0.7f, faceColor, sideColor);
            Painter.PaintCylinder(Axis.Z, new Vector3(0, 0.42f, 0.38f), 0.03f, 0.031f, 0.7f, faceColor, sideColor);
            Painter.PaintCylinder(Axis.Z, new Vector3(0, 0.483f, 0.55f), 0.028f, 0.45f, faceColor, sideColor);
            Painter.PaintCylinder(Axis.Z, new Vector3(0, 0.36f, 0.455f), 0.023f, 0.45f, faceColor, sideColor);

            GL.Enable(EnableCap.Lighting);
            GL.Enable(EnableCap.Texture2D);
        }
示例#3
0
        private static void DrawRollers()
        {
            GL.Disable(EnableCap.Lighting);
            GL.Disable(EnableCap.Texture2D);
            var stepZ     = 0f;
            var stepX     = 0f;
            var color1    = Color.FromArgb(72, 72, 72);
            var sideColor = Color.FromArgb(39, 39, 39);


            for (int i = 0; i < 8; i++)
            {
                stepX = i % 2 == 0 ? 0 : 0.095f;
                Painter.PaintCylinder(Axis.X, new Vector3(0.25f + stepX, -0.1f, -0.53f + stepZ), 0.09f, 0.03f, sideColor, sideColor);
                Painter.PaintCylinder(Axis.X, new Vector3(0.25f + stepX, -0.1f, -0.53f + stepZ), 0.02f, 0.05f, color1, sideColor);
                Painter.PaintClampedCylinder(Axis.X, new Vector3(0.25f + stepX, -0.1f, -0.53f + stepZ), 0.12f, 0.09f, 0.08f, color1, sideColor);
                Painter.PaintCylinder(Axis.X, new Vector3(-0.25f - stepX, -0.1f, -0.53f + stepZ), 0.09f, 0.03f, sideColor, sideColor);
                Painter.PaintCylinder(Axis.X, new Vector3(-0.25f - stepX, -0.1f, -0.53f + stepZ), 0.02f, 0.05f, color1, sideColor);
                Painter.PaintClampedCylinder(Axis.X, new Vector3(-0.25f - stepX, -0.1f, -0.53f + stepZ), 0.12f, 0.09f, 0.08f, color1, sideColor);
                stepZ += 0.16f;
            }

            // передние катки
            Painter.PaintCylinder(Axis.X, new Vector3(-0.32f, -0.04f, -0.77f), 0.11f, 0.11f, color1, sideColor);
            Painter.PaintCylinder(Axis.X, new Vector3(0.32f, -0.04f, -0.77f), 0.11f, 0.11f, color1, sideColor);
            Painter.PaintCylinder(Axis.X, new Vector3(-0.2f, -0.04f, -0.77f), 0.02f, 0.2f, color1, sideColor);
            Painter.PaintCylinder(Axis.X, new Vector3(0.2f, -0.04f, -0.77f), 0.02f, 0.2f, color1, sideColor);

            // задние катки
            Painter.PaintCylinder(Axis.X, new Vector3(-0.32f, -0.042f, 0.8f), 0.085f, 0.12f, color1, sideColor);
            Painter.PaintCylinder(Axis.X, new Vector3(0.32f, -0.042f, 0.8f), 0.085f, 0.12f, color1, sideColor);
            Painter.PaintCylinder(Axis.X, new Vector3(-0.2f, -0.042f, 0.8f), 0.02f, 0.2f, color1, sideColor);
            Painter.PaintCylinder(Axis.X, new Vector3(0.2f, -0.042f, 0.8f), 0.02f, 0.2f, color1, sideColor);
            GL.Enable(EnableCap.Lighting);
            GL.Enable(EnableCap.Texture2D);
        }