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