void DispatchPhyEvent(PHY_EVENT_ID eventid, object pParam) { for(uint i = 0; i<m_nEventListNum; i++) { if(m_aEventList[i] == eventid) {//已被注册 NotifyPhyEvent(eventid, pParam); return; } } }
public void RegisterPhyEvent(PHY_EVENT_ID eventid) { if( m_nEventListNum == MAX_REGISTER_EVENTS_NUM ) { return; } for(uint i = 0; i < m_nEventListNum; i++) { if(m_aEventList[i] == eventid) return; } m_aEventList[m_nEventListNum++] = eventid; }
//注销一个物理事件 public void UnRegisterPhyEvent(PHY_EVENT_ID eventid) { if( m_nEventListNum == 0) { return; } for(uint i = 0; i < m_nEventListNum; i++) { if(m_aEventList[i] == eventid) { m_aEventList[i] = m_aEventList[m_nEventListNum-1]; m_nEventListNum--; break; } } }
public override void NotifyPhyEvent(PHY_EVENT_ID eventid, object pParam) { switch (eventid) { case PHY_EVENT_ID.PE_OBJECT_BEGIN_MOVE: { // GameProcedure.s_pGfxSystem.Camera_BeginTrace(); } break; case PHY_EVENT_ID.PE_OBJECT_TURN_AROUND: { } break; default: { base.NotifyPhyEvent(eventid, pParam); } break; } return; }
public virtual void NotifyPhyEvent(PHY_EVENT_ID eventid, object pParam) { return; }