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); }
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); }
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); }