示例#1
0
        public static Entity Create(Engine engine, Vector2 position, Vector2 bounds, Vector2 normal)
        {
            Entity entity = engine.CreateEntity();

            entity.AddComponent(new TransformComponent(position));
            float hw = bounds.X / 2;
            float hh = bounds.Y / 2;

            entity.AddComponent(new CollisionComponent(new PolygonCollisionShape(new Vector2[] {
                new Vector2(hw, hh),
                new Vector2(-hw, hh),
                new Vector2(-hw, -hh),
                new Vector2(hw, -hh)
            })));
            entity.GetComponent <CollisionComponent>().CollisionGroup = Constants.Collision.COLLISION_GROUP_EDGES;
            entity.GetComponent <CollisionComponent>().CollisionMask  = (byte)(Constants.Collision.GROUP_MASK_ALL & ~Constants.Collision.COLLISION_GROUP_EDGES);
            entity.AddComponent(new EdgeComponent(normal));
            entity.AddComponent(new QuadTreeReferenceComponent(new QuadTreeNode(new BoundingRect())));

            RenderShape[] temp = new RenderShape[1];
            temp[0] = new QuadRenderShape(new Vector2(hw, hh), new Vector2(-hw, hh), new Vector2(-hw, -hh), new Vector2(hw, -hh), CVars.Get <Color>("color_playfield"));
            entity.AddComponent(new VectorSpriteComponent(temp));
            entity.GetComponent <VectorSpriteComponent>().RenderGroup = Constants.Render.RENDER_GROUP_GAME_ENTITIES;

            return(entity);
        }
示例#2
0
        public static int GetTrianglesForShape(RenderShape renderShape, RenderProjection projection)
        {
            // Tris is the number of triangles in each shape
            int tris = 0;

            switch (renderShape)
            {
            case RenderShape.Cube:
                tris = 12;
                break;

            case RenderShape.Arrow:
                tris = (projection == RenderProjection.FirstPerson) ? 2 : 3;
                break;

            case RenderShape.Square:
                tris = 2;
                break;

            case RenderShape.Triangle:
                tris = 1;
                break;

            case RenderShape.PointToPoint:
                tris = 4;
                break;
            }
            return(tris);
        }
示例#3
0
        public static int GetVecticesForShape(RenderShape renderShape, RenderProjection projection)
        {
            // Verts is the number of UNIQUE vertices in each shape
            int verts = 0;

            switch (renderShape)
            {
            case RenderShape.Cube:
                verts = 8;
                break;

            case RenderShape.Arrow:
                verts = (projection == RenderProjection.FirstPerson) ? 4 : 7;
                break;

            case RenderShape.Square:
                verts = 4;
                break;

            case RenderShape.Triangle:
                verts = 3;
                break;

            case RenderShape.PointToPoint:
                verts = 8;
                break;
            }
            return(verts);
        }
示例#4
0
 public void UpdateRenderStyle(RenderShape style, RenderDirection direction)
 {
     if (style != m_RenderStyle || direction != m_RenderDirection)
     {
         m_RenderDirection = direction;
         m_RenderStyle     = style;
         m_RenderState     = k_BeginRenderer;
     }
 }
        public static string RunIt()
        {
            // Uncomment the one you want to try out

            //// =====================================================
            //// =====================================================
            //// Rendering and Printing
            //// =====================================================
            //// =====================================================


            return(RenderShape.Run());
        }
示例#6
0
        public RenderData(Vector p, Vector size)
        {
            Position     = p;
            Size         = size;
            FillColor    = Color.Pink;
            OutlineColor = Color.Black;

            RenderType  = RenderType.None;
            RenderShape = RenderShape.None;
            RenderLayer = RenderLayer.None;
            ObjectIndex = -1;
            ZIndex      = 1;
            Text        = "";

            debug = false;
        }
示例#7
0
 public void UpdateRenderStyle(RenderShape style, RenderDirection direction)
 {
     if (style != m_RenderStyle || direction != m_RenderDirection)
     {
         m_RenderDirection = direction;
         m_RenderStyle = style;
         m_RenderState = k_BeginRenderer;
     }
 }