コード例 #1
0
        public override void DrawPolygon(b2Vec2[] vertices, int vertexCount, b2Color color)
        {
            if (!primitiveBatch.IsReady())
            {
                throw new InvalidOperationException("BeginCustomDraw must be called before drawing anything.");
            }

            for (int i = 0; i < vertexCount - 1; i++)
            {
                primitiveBatch.AddVertex(vertices[i].ToCCVector2() * PTMRatio, color.ToCCColor4B(), PrimitiveType.LineList);
                primitiveBatch.AddVertex(vertices[i + 1].ToCCVector2() * PTMRatio, color.ToCCColor4B(), PrimitiveType.LineList);
            }

            primitiveBatch.AddVertex(vertices[vertexCount - 1].ToCCVector2() * PTMRatio, color.ToCCColor4B(), PrimitiveType.LineList);
            primitiveBatch.AddVertex(vertices[0].ToCCVector2() * PTMRatio, color.ToCCColor4B(), PrimitiveType.LineList);
        }
コード例 #2
0
        public static void DrawLine(CCPoint origin, CCPoint destination, CCColor4B color)
        {
            var a = origin;
            var b = destination;

            var n = CCPoint.Normalize(CCPoint.PerpendicularCCW(a - b));

            var lww = LineWidth * 0.5f;
            var nw  = n * lww;
            var v0  = b - nw;
            var v1  = b + nw;
            var v2  = a - nw;
            var v3  = a + nw;

            // Triangles from beginning to end
            batch.AddVertex(v1, color, PrimitiveType.TriangleList);
            batch.AddVertex(v2, color, PrimitiveType.TriangleList);
            batch.AddVertex(v0, color, PrimitiveType.TriangleList);

            batch.AddVertex(v1, color, PrimitiveType.TriangleList);
            batch.AddVertex(v2, color, PrimitiveType.TriangleList);
            batch.AddVertex(v3, color, PrimitiveType.TriangleList);
        }