public void RegisterListener( EEventType eventType, ListenerDelegate delg )
 {
     EventObject obj = new EventObject();
     obj.MyEvent = eventType;
     obj.ThisDelegate = delg;
     listenerObjects.Add( obj );
 }
示例#2
0
        public void MessageReceiver(CallbackDelegate Callback, ListenerDelegate Listener)
        {
            //lock (queue)
            //  {
            NetPackage pkg;
            UdpClient  udp = new UdpClient(Port);

            while (true)
            {
                try
                {
                    IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, Port);

                    byte[]     data    = udp.Receive(ref endPoint);
                    IPAddress  sender  = endPoint.Address;
                    NetPackage package = new NetPackage()
                    {
                        Data = data, Sender = sender
                    };
                    pkg = package;
                    break;
                }

                catch (Exception ex)
                {
                    Debug.WriteLine("Error:" + ex);
                }
            }
            ThreadStart threadStart = new ThreadStart(() => Callback(pkg));
            Thread      thread      = new Thread(threadStart);

            thread.Start();
            // Task.Factory.StartNew(() => Callback(pkg), TaskCreationOptions.LongRunning);
        }
 //METODS==========================================================================================================
 //Add listener USALO IN START O PIU TARDI
 public void AddListener(ListenerDelegate Listener,string E_key)
 {
     //se l evento non esiste da warning
     if (!E_Listeners.ContainsKey (E_key))
         Debug.Log ("WARNING:EVENTO NON ESISTENTE");
     //aggiunge alla lista dell evento E_key il listener
     E_Listeners [E_key].Add (Listener);
 }
        public UDPTools(int port)
        {
            m_data = new byte[1024];
            m_ipep = new IPEndPoint(IPAddress.Any, port);
            m_newsock = new Socket(AddressFamily.InterNetwork,
                                   SocketType.Dgram, ProtocolType.Udp);
            m_newsock.Bind(m_ipep);
            m_sender = new IPEndPoint(IPAddress.Any, 0);
            m_remote = (EndPoint) (m_sender);

            m_udpServerThread = new Thread(UDPServer);

            m_ld = OnData;
        }
 public void UnregisterListener( EEventType eventType, ListenerDelegate delg )
 {
     EventObject obj;
     for( int x=0; x<listenerObjects.Count; ++x )
     {
         obj = listenerObjects[x];
         if( eventType == obj.MyEvent  )
         {
             if( delg.GetHashCode() == obj.ThisDelegate.GetHashCode() )
             {
                 listenerObjects.RemoveAt( x );
                 break;
             }
         }
     }
 }
示例#6
0
文件: View.cs 项目: xqy/game
        /// <summary>
        /// 添加单个更新的侦听,一般在addListeners方法中使用
        /// </summary>
        /// <param name="id">更新的名称</param>
        /// <param name="dele">更新的委托</param>
        protected void addListener(string id, ListenerDelegate dele)
        {
            if (listenerDic == null)
            {
                listenerDic = new Dictionary<string, ListenerDelegate>();
            }

            if (listenerDic.ContainsKey(id))
            {
                listenerDic[id] += dele;
            }
            else
            {
                listenerDic.Add(id, dele);
                mvcCharge.addListener(id, dele);
            }
        }
示例#7
0
    ListenerDelegate <EventObject> attackSoundLD;  // 用于动画事件的监听器委托


    // Use this for initialization
    void Start()
    {
        // 获得UnityArmatureComponent组件
        robot1 = Robot1.GetComponent <UnityArmatureComponent>();

        // 监听动画事件
        // 方法一:直接添加委托,适用于小段代码
        //robot1.AddEventListener(EventObject.START, delegate { print("开始播放动画了"); });
        // 方法二:使用AddEventListener指定的类型创建ListenerDelegate<EventObject>变量委托,添加需要执行的函数
        startPlayLD += this.startPlay;
        robot1.AddEventListener(EventObject.START, startPlayLD);         // 监听动画开始事件
        completePlayLD += this.completePlay;
        robot1.AddEventListener(EventObject.COMPLETE, completePlayLD);   // 监听动画结束事件(循环动画时,使用LOOP_COMPLETE)
        attackFrameLD += this.attackFrame;
        robot1.AddEventListener(EventObject.FRAME_EVENT, attackFrameLD); // 监听动画某一帧事件
        attackSoundLD += attackSound;
        robot1.AddEventListener(EventObject.SOUND_EVENT, attackSoundLD); // 监听动画声音事件
    }
        protected virtual void Awake()
        {
            boxCollider = GetComponent <BoxCollider2D> ();

            ListenerDelegate <EventObject> keyFrameListener = KeyFrameMessage;

            if (gameObject.tag == "monster")
            {
                armatureCom.AddEventListener(DragonBones.EventObject.FRAME_EVENT, keyFrameListener);
            }
            else if (gameObject.tag == "Player")
            {
                UnityArmatureComponent playerArmature = transform.Find("PlayerSide").GetComponent <UnityArmatureComponent> ();
                playerArmature.AddEventListener(DragonBones.EventObject.FRAME_EVENT, keyFrameListener);
            }

            isIdle = true;

            propertyCalculator = new AgentPropertyCalculator();
        }
示例#9
0
        public void AddEventListener(string type, ListenerDelegate <T> listener)
        {
            if (_listeners.ContainsKey(type))
            {
                var delegates = _listeners[type].GetInvocationList();
                for (int i = 0, l = delegates.Length; i < l; ++i)
                {
                    if (listener == delegates[i] as ListenerDelegate <T> )
                    {
                        return;
                    }
                }

                _listeners[type] += listener;
            }
            else
            {
                _listeners.Add(type, listener);
            }
        }
示例#10
0
        /**
         * @inheritDoc
         */
        public void RemoveEventListener(string type, ListenerDelegate <T> listener)
        {
            if (!_listeners.ContainsKey(type))
            {
                return;
            }

            var delegates = _listeners[type].GetInvocationList();

            for (int i = 0, l = delegates.Length; i < l; ++i)
            {
                if (listener == delegates[i] as ListenerDelegate <T> )
                {
                    _listeners[type] -= listener;
                    break;
                }
            }

            if (_listeners[type] == null)
            {
                _listeners.Remove(type);
            }
        }
        protected virtual void Awake()
        {
            boxCollider = GetComponent <BoxCollider2D> ();

            // 角色攻击关键帧添加监听
            ListenerDelegate <EventObject> keyFrameListener = KeyFrameMessage;

            if (this is BattleMonsterController)
            {
                armatureCom.AddEventListener(EventObject.FRAME_EVENT, keyFrameListener);
            }
            else if (this is BattlePlayerController)
            {
                BattlePlayerController bpctr = this as BattlePlayerController;
                UnityArmatureComponent playerSideArmature     = bpctr.playerSide.GetComponent <UnityArmatureComponent> ();
                UnityArmatureComponent playerForwardArmature  = bpctr.playerForward.GetComponent <UnityArmatureComponent> ();
                UnityArmatureComponent playerBackwardArmature = bpctr.playerBackWard.GetComponent <UnityArmatureComponent> ();
                playerSideArmature.AddEventListener(EventObject.FRAME_EVENT, keyFrameListener);
                playerForwardArmature.AddEventListener(EventObject.FRAME_EVENT, keyFrameListener);
                playerBackwardArmature.AddEventListener(EventObject.FRAME_EVENT, keyFrameListener);
            }

            isDead = false;
        }
示例#12
0
 public void RemoveDBEventListener(string type, ListenerDelegate <EventObject> listener)
 {
     RemoveEventListener(type, listener);
 }
示例#13
0
 public void AddDBEventListener(string type, ListenerDelegate <EventObject> listener)
 {
     AddEventListener(type, listener);
 }
示例#14
0
 public GameEventListenerDelegateListener(ListenerDelegate listener, string debugName)
 {
     m_Action    = listener;
     m_DebugName = debugName;
 }
示例#15
0
 public GameEventListenerDelegateListener(ListenerDelegate listener)
 {
     m_Action = listener;
 }
 //Add listener
 public void AddListener(ListenerDelegate Listener)
 {
     Listeners.Add(Listener);
 }
示例#17
0
 public static GameEventListenerDelegate CreateListener(ListenerDelegate listener)
 {
     return(new GameEventListenerDelegateListener(listener));
 }
示例#18
0
文件: MVCCharge.cs 项目: xqy/game
 /// <summary>
 /// 移除更新的侦听
 /// </summary>
 /// <param name="id">更新的名称</param>
 /// <param name="dele">更新的方法</param>
 public void removeListener(string id, ListenerDelegate dele)
 {
     if (!m_listenerDic.ContainsKey(id))
     {
         return;
     }
     ListenerDelegate delegates = m_listenerDic[id] - dele;
     if (delegates == null)
     {
         m_listenerDic.Remove(id);
     }
     else
     {
         m_listenerDic[id] = delegates;
     }
 }
示例#19
0
 public static extern RetCode hub_unregister_listener(ref ListenerDelegate listener);
示例#20
0
 public _Handler_502(ListenerDelegate _enclosing, android.os.Looper baseArg1) : base
         (baseArg1)
 {
     throw new System.NotImplementedException();
 }
示例#21
0
				public _Handler_502(ListenerDelegate _enclosing, android.os.Looper baseArg1) : base
					(baseArg1)
				{
					throw new System.NotImplementedException();
				}
示例#22
0
 public static GameEventListenerDelegate CreateListener(ListenerDelegate listener, string debugName)
 {
     return(new GameEventListenerDelegateListener(listener, debugName));
 }
示例#23
0
文件: MVCCharge.cs 项目: xqy/game
 /// <summary>
 /// 添加更新的侦听
 /// </summary>
 /// <param name="id">更新的名称</param>
 /// <param name="dele">更新的方法</param>
 public void addListener(string id, ListenerDelegate dele)
 {
     if (m_listenerDic.ContainsKey(id))
     {
         m_listenerDic[id] += dele;
     }
     else
     {
         m_listenerDic.Add(id, dele);
     }
 }
 public void RemoveListener(ListenerDelegate Listener,string E_key)
 {
     //rimuove dalla lista dell evento E_key il listener
     E_Listeners [E_key].Remove(Listener);
 }