private void start_Click(object sender, EventArgs e) { _graphics.FillRectangle(Brushes.Black, 0, 0, _maxWidth, _maxHeight); var desiredCount = (int)instanceCounter.Value; _counter = new CountdownEvent(desiredCount); _tweens = new GTween[desiredCount]; GTween.PauseAll = true; for (var i = 0; i < desiredCount; i++) { var initializer = new GTweenPropertyInitializer() { AutoPlay = false, DispatchEvents = true, Data = new Point(0, i * 5) }; var target = new Point(0, i * 5); var values = new Dictionary <string, double>() { { "Y", _maxHeight } }; var tween = new GTween(target, 5, values, initializer); tween.Ease = Sine.EaseInOut; tween.Completed += TweenCompleted; tween.Paused = false; _tweens[i] = tween; } GTween.PauseAll = false; _refresh.Enabled = true; }
/// <summary> /// 离开时做一个惯性动画 /// </summary> /// <param name="context"></param> void OnSwipeEnd(EventContext context) { SwipeGesture gesture = (SwipeGesture)context.sender; Vector3 v = new Vector3(); if (Mathf.Abs(gesture.velocity.x) > Mathf.Abs(gesture.velocity.y)) { //手指离开时,左右旋转时的加速度 v.y = -Mathf.Round(Mathf.Sign(gesture.velocity.x) * Mathf.Sqrt(Mathf.Abs(gesture.velocity.x))); if (Mathf.Abs(v.y) < 2) { return; } } else { v.x = -Mathf.Round(Mathf.Sign(gesture.velocity.y) * Mathf.Sqrt(Mathf.Abs(gesture.velocity.y))); if (Mathf.Abs(v.x) < 2) { return; } } //做一个TO数值过度从V->0经过0.3秒 ,设置目标对象是地球, 每帧调用 lambda表达式传入一个GTweener对象 //差值旋转 GTween.To(v, Vector3.zero, 0.3f).SetTarget(_ball).OnUpdate( (GTweener tweener) => { _ball.Rotate(tweener.deltaValue.vec3, Space.World); }); }
void OnSwipeEnd(EventContext context) { SwipeGesture gesture = (SwipeGesture)context.sender; Vector3 v = new Vector3(); if (Mathf.Abs(gesture.velocity.x) > Mathf.Abs(gesture.velocity.y)) { v.y = -Mathf.Round(Mathf.Sign(gesture.velocity.x) * Mathf.Sqrt(Mathf.Abs(gesture.velocity.x))); if (Mathf.Abs(v.y) < 2) { return; } } else { v.x = -Mathf.Round(Mathf.Sign(gesture.velocity.y) * Mathf.Sqrt(Mathf.Abs(gesture.velocity.y))); if (Mathf.Abs(v.x) < 2) { return; } } GTween.To(v, Vector3.zero, 0.3f).SetTarget(_ball).OnUpdate( (GTweener tweener) => { _ball.Rotate(tweener.deltaValue.vec3, Space.World); }); }
public void TestDelay() { var initializer = new GTweenPropertyInitializer(); initializer.AutoPlay = false; initializer.DispatchEvents = true; initializer.Delay = TweenDuration; var tween = new GTween(_target, TweenDuration, _values, initializer); var reset = new AutoResetEvent(false); var timer = new Stopwatch(); EventHandler <GTweenEventArgs> handler = (s, e) => { timer.Stop(); reset.Set(); }; tween.Initialized += handler; timer.Start(); tween.Paused = false; reset.WaitOne(WaitDuration); tween.Initialized -= handler; Assert.IsTrue(timer.ElapsedMilliseconds >= TweenDuration); }
public void TestDataAfterInstantiation() { var initData = $"Store for {nameof(GTweenTests)} at initialization"; var data = $"Store for {nameof(GTweenTests)} after instantiation"; var initializer = new GTweenPropertyInitializer() { AutoPlay = true, Data = initData, DispatchEvents = true }; var tween = new GTween(_target, TweenDuration, _values, initializer); tween.Data = data; var reset = new AutoResetEvent(false); EventHandler <GTweenEventArgs> handler = (s, e) => { reset.Set(); }; tween.Completed += handler; reset.WaitOne(WaitDuration); tween.Completed -= handler; Assert.AreEqual(data, tween.Data); }
void StartTween() { _turningAmount = 0; RenderPages(); Vector2 source = GetCornerPosition(_draggingCorner, _coverTurningOp != CoverTurningOp.None); Vector2 target; if (_draggingCorner == Corner.TL || _draggingCorner == Corner.BL) { target = GetCornerPosition(_draggingCorner + 2, _coverTurningOp != CoverTurningOp.None); } else { target = GetCornerPosition(_draggingCorner - 2, _coverTurningOp != CoverTurningOp.None); } if (_turningPath == null) { _turningPath = new GPath(); } Vector2 mid = new Vector2(source.x + (target.x - source.x) / 2, target.y - 50); _turningPath.Create(new GPathPoint(source), new GPathPoint(mid), new GPathPoint(target)); GTween.To(source, target, EffectDuration).SetUserData(true).SetTarget(this) .SetPath(_turningPath) .OnUpdate(OnTurnUpdate).OnComplete(OnTurnComplete); }
void __touchEnd(EventContext context) { if (_draggingCorner != Corner.INVALID) { bool suc = _turningAmount > 0.4f || (Time.unscaledTime - _touchDownTime < 0.35f); Vector2 target; if (suc) { if (_draggingCorner == Corner.TL || _draggingCorner == Corner.BL) { target = GetCornerPosition(_draggingCorner + 2, _coverTurningOp != CoverTurningOp.None); } else { target = GetCornerPosition(_draggingCorner - 2, _coverTurningOp != CoverTurningOp.None); } } else { target = GetCornerPosition(_draggingCorner, _coverTurningOp != CoverTurningOp.None); } float duration = Mathf.Max(EffectDuration * 0.5f, Mathf.Abs(target.x - _dragPoint.x) / (_pageWidth * 2) * EffectDuration); GTween.To(_dragPoint, target, duration).SetTarget(this).SetUserData(suc) .OnUpdate(OnTurnUpdate).OnComplete(OnTurnComplete); } }
public void SetHurt(Transform owner, int type, long hurt, bool isPlayer, bool critical) { _owner = owner; TextFormat tf = _numberText.textFormat; tf.color = Color.red; tf.size = 24; if (type == 0) { tf.font = EmitManager.inst.hurtFont1; } else { tf.font = EmitManager.inst.hurtFont2; } if (isPlayer) { tf.size = 60; } if (hurt < 0) { tf.color = Color.green; _numberText.textFormat = tf; _numberText.text = "+" + (-hurt); } else { tf.color = Color.red; _numberText.textFormat = tf; _numberText.text = "-" + hurt; } if (critical) { _symbolLoader.url = EmitManager.inst.criticalSign; } else { _symbolLoader.url = ""; } UpdateLayout(); this.alpha = 1; UpdatePosition(Vector2.zero); Vector2 rnd = Vector2.Scale(UnityEngine.Random.insideUnitCircle, JITTER_FACTOR); int toX = (int)rnd.x * 2; int toY = (int)rnd.y * 2; EmitManager.inst.view.AddChild(this); GTween.To(Vector2.zero, new Vector2(toX, toY), 1f).SetTarget(this) .OnUpdate((GTweener tweener) => { this.UpdatePosition(tweener.value.vec2); }).OnComplete(this.OnCompleted); this.TweenFade(0, 0.5f).SetDelay(0.5f); }
public void TestDeleteValue() { var initializer = new GTweenPropertyInitializer() { AutoPlay = false, DispatchEvents = true }; var tween = new GTween(_target, TweenDuration, _values, initializer); var reset = new AutoResetEvent(false); EventHandler <GTweenEventArgs> handler = (s, e) => { tween.DeleteValue("Value"); reset.Set(); }; tween.Changed += handler; tween.Paused = false; reset.WaitOne(WaitDuration); tween.Changed -= handler; Assert.AreEqual(false, tween.Paused); Assert.IsTrue(_target.Value < _values["Value"]); Assert.IsTrue(_target.Value > 0); }
public void TestReflect() { var initializer = new GTweenPropertyInitializer(); initializer.AutoPlay = false; initializer.DispatchEvents = true; initializer.Reflect = true; initializer.RepeatCount = 2; var tween = new GTween(_target, TweenDuration, _values, initializer); var initValue = _target.Value; var midAchieved = false; var endAchieved = false; var reset = new AutoResetEvent(false); EventHandler <GTweenEventArgs> handler = (s, e) => { if (Math.Ceiling(_target.Value) == _values["Value"]) { midAchieved = true; } endAchieved = midAchieved && _target.Value == initValue; }; tween.Changed += handler; tween.Paused = false; reset.WaitOne(WaitDuration << 1); tween.Changed -= handler; Assert.IsTrue(midAchieved); Assert.IsTrue(endAchieved); }
public void TestRepeat() { var initializer = new GTweenPropertyInitializer(); initializer.AutoPlay = false; initializer.DispatchEvents = true; initializer.RepeatCount = 2; var tween = new GTween(_target, TweenDuration, _values, initializer); var counter = 0; var reset = new AutoResetEvent(false); EventHandler <GTweenEventArgs> handler = (s, e) => { counter++; if (tween.RepeatCount == counter) { reset.Set(); } }; tween.Completed += handler; tween.Paused = false; reset.WaitOne(WaitDuration << 1); tween.Completed -= handler; Assert.AreEqual(tween.RepeatCount, counter); }
public void TestEnd() { var tween = new GTween(_target, TweenDuration, _values); tween.End(); Assert.AreEqual(TweenDuration, tween.Position); }
void OnHold(EventContext context) { GTween.Shake(_ball.transform.localPosition, 0.05f, 0.5f).SetTarget(_ball).OnUpdate( (GTweener tweener) => { _ball.transform.localPosition = new Vector3(tweener.value.x, tweener.value.y, _ball.transform.localPosition.z); }); }
void OnRotate(EventContext context) { GTween.Kill(_ball); RotationGesture gesture = (RotationGesture)context.sender; _ball.Rotate(Vector3.forward, -gesture.delta, Space.World); }
public void TestGetValue() { var fromValues = _values["Value"]; var tween = new GTween(_target, TweenDuration, _values); var fromInstance = tween.GetValue("Value"); Assert.AreEqual(fromValues, fromInstance); }
/// <summary> /// /// </summary> /// <param name="pageIndex"></param> public void TurnTo(int pageIndex) { if (pageIndex < 0 || pageIndex > _pageCount - 1) { throw new Exception("Page index out of bounds: " + pageIndex); } GTween.Kill(this, true); if (_coverStatus == CoverStatus.ShowingFront) { _coverTurningOp = CoverTurningOp.HideFront; _draggingCorner = Corner.BR; } else if (_coverStatus == CoverStatus.ShowingBack) { _coverTurningOp = CoverTurningOp.HideBack; _draggingCorner = Corner.BL; } int tt1 = _currentPage; if (_currentPage % 2 == 0) { tt1--; } int tt2 = pageIndex; if (pageIndex % 2 == 0) { tt2--; } if (tt1 == tt2) { _currentPage = pageIndex; _turningTarget = -1; } else { _turningTarget = pageIndex; if (_turningTarget < _currentPage) { _draggingCorner = Corner.BL; } else { _draggingCorner = Corner.BR; } } if (_draggingCorner == Corner.INVALID) { return; } StartTween(); }
private void Awake() { gTween = new GTween(0.3f, 0f, 1f, false); originalAnchoredPosition = myRect.anchoredPosition; vDirection = (Quaternion.Euler(0, 0, direction) * Vector2.right); //Convert the supplied angle measure into a Vector2 //Debug.Log("vDirection: "+vDirection); offScreenPosition = new Vector2(originalAnchoredPosition.x - myRect.sizeDelta.x * vDirection.x, originalAnchoredPosition.y - myRect.sizeDelta.y * vDirection.y); myRect.anchoredPosition = offScreenPosition; }
void OnPinch(EventContext context) { GTween.Kill(_ball); PinchGesture gesture = (PinchGesture)context.sender; float newValue = Mathf.Clamp(_ball.localScale.x + gesture.delta, 0.3f, 2); _ball.localScale = new Vector3(newValue, newValue, newValue); }
public void TestBeginning() { var tween = new GTween(_target, TweenDuration, _values); tween.Beginning(); Assert.AreEqual(true, tween.Paused); Assert.AreEqual(0, tween.Position); }
private void RefreshDataSelect() { _controlShop.ResetSelectItem(); GTween.Kill(this); GTween.DelayedCall(0.02f).SetTarget(this).OnComplete(() => { SetSelectItem(m_indextItemSeleted); }); }
public void Cancel() { _owner = null; if (this.parent != null) { GTween.Kill(this); EmitManager.inst.view.RemoveChild(this); } EmitManager.inst.ReturnComponent(this); }
public void TestPosition() { var tween = new GTween(_target, TweenDuration, _values); tween.Paused = true; var position = 5d; tween.Position = 5d; Assert.AreEqual(position, tween.Position); }
public void TestGetValues() { KeyValuePair <string, double>[] fromValues = new KeyValuePair <string, double> [_values.Count]; _values.CopyTo(fromValues, 0); var tween = new GTween(_target, TweenDuration, _values); var fromInstance = tween.GetValues(); Assert.AreEqual(fromValues.Length, fromInstance.Count); Assert.IsTrue(fromInstance.ContainsKey(fromValues[0].Key)); }
/// <summary> /// 缩放事件 /// </summary> /// <param name="context"></param> void OnPinch(EventContext context) { //停止当前变化 GTween.Kill(_ball); PinchGesture gesture = (PinchGesture)context.sender; //球的X轴缩放系数+ 手指改变量 限制在0.3-2之间, 改变球的XYZ缩放系数 float newValue = Mathf.Clamp(_ball.localScale.x + gesture.delta, 0.3f, 2); _ball.localScale = new Vector3(newValue, newValue, newValue); }
//打断动画进程 add by tianjinpeng 2018/03/14 10:33:03 void killtweener(GTweener tweener) { if (tweener != null) { GTween.Kill(tweener); tweener = null; } else { } }
public void Turn() { if (GTween.IsTweening(this)) { return; } bool toOpen = !_front.visible; GTween.To(0, 180, 0.8f).SetTarget(this).SetEase(EaseType.QuadOut).OnUpdate(TurnInTween).SetUserData(toOpen); }
public void Add(string iconurl, string nametext, string datacount) { CanToZero(); float toy = 300f - ((tipsDatas.Count + 1) * 100f); newtipsData(iconurl, nametext, datacount); if (tweener != null) { GTween.Kill(tweener); } tweener = gList.TweenMoveY(toy, 0.3f); }
public void Hide(bool withAnim = true) { if (choicebubbletweener != null) { GTween.Kill(choicebubbletweener); } choicebubbletweener = ui.TweenFade(0, 0.2f).OnComplete(() => { ui.visible = false; choicebubbletweener = null; }); }
public void Show(bool withAnim = true) { ui.visible = true; if (choicebubbletweener != null) { GTween.Kill(choicebubbletweener); } choicebubbletweener = ui.TweenFade(1, 0.2f).OnComplete(() => { choicebubbletweener = null; }); }
public void Movesize(GObject parent, GObject gameObject, Vector2 sd, Vector2 pos, float time) { parent.position = sd; parent.visible = true; GTween.Kill(dosettw); GTween.Kill(movesizepar); dosettw = parent.TweenResize(gameObject.size, time); movesizepar = parent.TweenMove(pos, time).OnComplete(() => { gameObject.visible = true; parent.visible = false; }); }