Exemple #1
0
 // Start is called before the first frame update
 void Start()
 {
     startMovingCallback += StartMoving;
     route              = GetComponent <BezierRoute>();
     mover              = GetComponent <MoveToPositionOverTime>();
     timerManager       = GetComponent <TimerManager>();
     movementDelayTimer = timerManager.CreateTimer(m_Delay, false, startMovingCallback);
     movementDelayTimer.Start();
     DetermineWhichRouteToUse();
     Instantiate(initialExplosion, this.transform.position, initialExplosion.transform.rotation, this.transform.parent);
 }
Exemple #2
0
        private void UniformBezierRouteCallBack(BezierRoute bezierRoute, Point realPoint, BezierRoute.BezierStatus status)
        {
            // Draw demo panel
            lock (this)
            {
                g_demo.Clear(panel1.BackColor);
                int biasX = 0;
                int biasY = 0;
                int biasW = 0;
                int biasH = 0;
                if (bezierRoute.EnableEaseRoute())
                {
                    if (bezierRoute.Tag == 1)
                    {
                        biasX = (int)(bezierRoute.EaseRealRete * (615 - 8)) / 2;
                        biasY = (int)(bezierRoute.EaseRealRete * (10 - 8)) / 2;
                        biasW = (int)(bezierRoute.EaseRealRete * (350 - 8));
                        biasH = (int)(bezierRoute.EaseRealRete * (120 - 8));
                    }
                    else if (bezierRoute.Tag == -1)
                    {
                        biasX = (int)((1 - bezierRoute.EaseRealRete) * (615 - 8)) / 2;
                        biasY = (int)((1 - bezierRoute.EaseRealRete) * (10 - 8)) / 2;
                        biasW = (int)((1 - bezierRoute.EaseRealRete) * (350 - 8));
                        biasH = (int)((1 - bezierRoute.EaseRealRete) * (120 - 8));
                    }
                }
                g_demo.FillRectangle(new SolidBrush(Color.White), new RectangleF(realPoint.X - 4 - biasX, realPoint.Y - 4 - biasY, 8 + biasW, 8 + biasH));
            }
            if (status == BezierRoute.BezierStatus.Finished)
            {
                curvePointI = 0;
                // DrawBezierCurve();
                bezierRoute.Reverse();
                bezierRoute.Tag = -bezierRoute.Tag;

                // bezierRoute.Start = true;
                button1.BeginInvoke(new Action(() =>
                {
                    button1.Text = (string)button1.Tag;
                    button4.Text = (string)button4.Tag;
                }));

                Console.WriteLine("Finished");
            }

            // Update curve panel
            if (0 == ++curvePointI % curvePointInterval)
            {
                UpdateCurvePanel(realPoint);
            }
        }
Exemple #3
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // Create graphics
            g_demo  = panel1.CreateGraphics();
            g_curve = panel2.CreateGraphics();

            // Bezier points
            points[0] = new Point(10, 221);
            points[1] = new Point(40, 31);
            points[2] = new Point(310, 201);
            points[3] = new Point(340, 11);

            // Ease points
            easePoints[0] = new Point(10, 221);
            easePoints[1] = new Point(40, 31);
            easePoints[2] = new Point(310, 201);
            easePoints[3] = new Point(340, 11);

            // Route bezier initialization
            bezierRoute     = new BezierRoute(points, 2000, 1, UniformBezierRouteCallBack);
            bezierRoute.Tag = 1;

            // Ease bezier demo points parameters
            orignPoints[0] = new Point(0, panel1.Height / 2);
            orignPoints[1] = new Point(-8, panel1.Height / 2);
            orignPoints[2] = new Point(-16, panel1.Height / 2);
            distance       = panel1.Width;
            pE[0]          = new Point(orignPoints[0].X, orignPoints[0].Y);
            pE[1]          = new Point(orignPoints[1].X, orignPoints[1].Y);
            pE[2]          = new Point(orignPoints[2].X, orignPoints[2].Y);
            brush[0]       = new SolidBrush(Color.White);
            brush[1]       = new SolidBrush(Color.White);
            brush[2]       = new SolidBrush(Color.White);
            bitmap         = new Bitmap(panel1.Width, panel1.Height);
            g_bitmap       = Graphics.FromImage(bitmap);

            // Ease bezier demo points initialization
            bezierEase[0]     = new BezierEase(easePoints, 2000, 1, UniformBezierEaseDemoCallBack);
            bezierEase[0].Tag = 0;
            bezierEase[1]     = new BezierEase(easePoints, 2000, 1, UniformBezierEaseDemoCallBack);
            bezierEase[1].Tag = 1;
            bezierEase[2]     = new BezierEase(easePoints, 2000, 1, UniformBezierEaseDemoCallBack);
            bezierEase[2].Tag = 2;
        }