123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- using System;
- using System.Collections;
- using UnityEngine;
- using FairyGUI;
- using UI.ActivityGetYuanXiao;
- namespace GFGGame
- {
- public class YuanXiaoItem
- {
- private int _type;
- private int _score;
- private GComponent _com;
- private GObject _catcher;
- private ActivityGetYuanXiaoView _baseView;
- private GTweener _tweener;
- public YuanXiaoItem CreateItem(GComponent com, GObject catcher, ActivityGetYuanXiaoView baseView)
- {
- _com = com;
- _catcher = catcher;
- _baseView = baseView;
- return this;
- }
- public void Init(int type)
- {
- SetVisible(true);
- _type = type;
- UI_YuanXiaoItem item = UI_YuanXiaoItem.Proxy(_com);
- item.m_c1.selectedIndex = _type - 1;
- UI_YuanXiaoItem.ProxyEnd();
- }
- public void Move(Vector3 start, Vector3 end, float time, Action action = null)
- {
- Vector3 startPos = start;
- Vector3 endPos = end;
- _com.position = startPos;
- Timers.inst.Remove(HandleCollider);
- Timers.inst.AddUpdate(HandleCollider);
- _tweener = _com.TweenMoveY(endPos.y, time);
- _tweener.SetEase(EaseType.QuadIn).OnComplete(()=>
- {
- Timers.inst.Remove(HandleCollider);
- action?.Invoke();
- });
- }
- private void HandleCollider(object param = null)
- {
- if(CheckCollider(_com, _catcher))
- {
- Timers.inst.Remove(HandleCollider);
- _baseView.GetYuanXiao(this);
- }
- }
- private bool CheckCollider(GObject obj1, GObject obj2)
- {
- Vector3 pos1 = obj1.LocalToGlobal(Vector2.zero);
- Vector3 pos2 = obj2.LocalToGlobal(Vector2.zero);
- bool collisionX = pos1.x + obj1.width >= pos2.x
- && pos2.x + obj2.width >= pos1.x;
- bool collisionY = pos1.y + obj1.height >= pos2.y
- && pos2.y + obj2.height >= pos1.y;
- return collisionX && collisionY;
- }
- public bool GetVisible()
- {
- return _com.visible;
- }
- public void SetVisible(bool visible)
- {
- _com.visible = visible;
- if (!visible)
- {
- _tweener.Kill(false);
- }
- }
- public int GetYuanXiaoType()
- {
- return _type;
- }
- public void SetScore(int score)
- {
- _score = score;
- }
- public int GetScore()
- {
- return _score;
- }
- public void Destroy()
- {
- _tweener.Kill(false);
- Timers.inst.Remove(HandleCollider);
- _com.Dispose();
- }
- public void SetPause(bool pause = true)
- {
- if (_com.visible)
- {
- _tweener.SetPaused(pause);
- }
- }
- }
- }
|