Esempio n. 1
0
        public override void Render()
        {
            var pts    = Bounds.ToArray();
            var canPts = new VectorGroup(pts[0], pts[1], pts[4], pts[3], pts[0], pts[4],
                                         pts[1], pts[2], pts[3]);

            View.FillPolygon(new VectorGroup(pts).Move(Position), color, false);
            View.DrawPolygon(canPts.Move(Position), Color.Black, false, 2);
        }
Esempio n. 2
0
        public override void Render(IFrame frame, TankState state)
        {
            var body = bodyVGroup
                       .Move(Origin)
                       .Rotate(Vector.Zero, state.Rotation)
                       .Move(state.Position);

            var head = headVGroup
                       .Move(Origin)
                       .Rotate(Vector.Zero, state.GunRotation - 90f)
                       .Move(state.Position);

            frame.FillPolygon(body, Color.DarkOliveGreen, false);
            frame.FillPolygon(head, Color.YellowGreen, false);
            frame.FillCircle(state.Position, 3, Color.Brown);

            /*foreach (var (points, turnRatio) in wheesMeta)
             * foreach (var p in points)
             * {
             *  var wheel = wheelVGroup.Rotate(Vector.Zero, SteerAngle * turnRatio).Move(Origin).Move(p)
             *      .Rotate(Vector.Zero, Rotation).Move(Position);
             *
             *  if (Abs(overload) > 0.95f)
             *  {
             *      View.MarkSlip(wheel);
             *  }
             *
             *  View.FillPolygon(wheel, Color.Black, true);
             * }
             *
             * VectorGroup Prepare(VectorGroup vg) =>
             *  vg.Move(Origin).Rotate(Vector.Zero, Rotation).Move(Position);
             *
             * var headPoints = Prepare(headVGroup);
             *
             * var bodyPoints = Prepare(bodyVGroup);
             *
             * View.FillPolygon(bodyPoints, Color.White, false);
             * View.DrawPolygon(bodyPoints, Color.Black, false);
             *
             * var fuelRatio = Fuel / MaxFuel;
             *
             * View.FillPolygon(headPoints, Color.FromArgb(
             *      (int) (255 - ((255 - headColor.R) * fuelRatio)),
             *      (int) (255 - ((255 - headColor.G) * fuelRatio)),
             *      (int) (255 - ((255 - headColor.B) * fuelRatio))),
             *  true);
             *
             * View.DrawPolygon(headPoints, Color.Black, true);*/
        }