@brief ��Ϸ�����
| 138 | |
| 139 | /// @brief ��Ϸ����� |
| 140 | class GameObjectPool |
| 141 | { |
| 142 | private: |
| 143 | lua_State* L = nullptr; |
| 144 | FixedObjectPool<GameObject, LGOBJ_MAXCNT> m_ObjectPool; |
| 145 | |
| 146 | // ����αͷ�� |
| 147 | uint64_t m_iUid = 0; |
| 148 | GameObject m_pObjectListHeader, m_pObjectListTail; |
| 149 | GameObject m_pRenderListHeader, m_pRenderListTail; |
| 150 | GameObject m_pCollisionListHeader[LGOBJ_GROUPCNT], m_pCollisionListTail[LGOBJ_GROUPCNT]; |
| 151 | |
| 152 | // �����߽� |
| 153 | lua_Number m_BoundLeft = -100.f; |
| 154 | lua_Number m_BoundRight = 100.f; |
| 155 | lua_Number m_BoundTop = 100.f; |
| 156 | lua_Number m_BoundBottom = -100.f; |
| 157 | private: |
| 158 | GameObject* freeObject(GameObject* p)LNOEXCEPT; |
| 159 | public: |
| 160 | /// @brief ����Ƿ�Ϊ���߳� |
| 161 | bool CheckIsMainThread(lua_State* pL)LNOEXCEPT { return pL == L; } |
| 162 | |
| 163 | /// @brief ��ȡ�ѷ���������� |
| 164 | size_t GetObjectCount()LNOEXCEPT { return m_ObjectPool.Size(); } |
| 165 | |
| 166 | /// @brief ��ȡ���� |
| 167 | GameObject* GetPooledObject(size_t i)LNOEXCEPT { return m_ObjectPool.Data(i); } |
| 168 | |
| 169 | /// @brief ִ�ж����Frame���� |
| 170 | void DoFrame()LNOEXCEPT; |
| 171 | |
| 172 | /// @brief ִ�ж����Render���� |
| 173 | void DoRender()LNOEXCEPT; |
| 174 | |
| 175 | /// @brief ��ȡ��̨�߽� |
| 176 | fcyRect GetBound()LNOEXCEPT |
| 177 | { |
| 178 | return fcyRect((float)m_BoundLeft, (float)m_BoundTop, (float)m_BoundRight, (float)m_BoundBottom); |
| 179 | } |
| 180 | |
| 181 | /// @brief ������̨�߽� |
| 182 | void SetBound(lua_Number l, lua_Number r, lua_Number b, lua_Number t)LNOEXCEPT |
| 183 | { |
| 184 | m_BoundLeft = l; |
| 185 | m_BoundRight = r; |
| 186 | m_BoundTop = t; |
| 187 | m_BoundBottom = b; |
| 188 | } |
| 189 | |
| 190 | /// @brief ִ�б߽��� |
| 191 | void BoundCheck()LNOEXCEPT; |
| 192 | |
| 193 | /// @brief ��ײ��� |
| 194 | /// @param[in] groupA ������A |
| 195 | /// @param[in] groupB ������B |
| 196 | void CollisionCheck(size_t groupA, size_t groupB)LNOEXCEPT; |
| 197 |
nothing calls this directly
no outgoing calls
no test coverage detected