using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace StgSharp_Logic { public class EntityContainer { private Counter _limit; private float _leftBorder; private float _rightBorder; private float _topBorder; private float _bottomBorder; private LinkedList _container; public LinkedList Container { get { return _container; } set { _container = value; } } public float LeftBorder { get { return _leftBorder; } set { _leftBorder = value; } } public float RightBorder { get { return _rightBorder; } set { _rightBorder = value; } } public float TopBorder { get { return _topBorder; } set { _topBorder = value; } } public float BottomBorder { get { return _bottomBorder; } set { _bottomBorder = value; } } public EntityContainer(Counter counter) { this._limit = counter; this.Container = new LinkedList(_limit); } public void Add(LinkedTarget target) { if (true) //对target类型进行判断,应当只是实体 { _container.Add(target); } } public void RemoveAt(int id) { _container.Remove(id); } //Move an entity from one container to another one public void Move(LinkedTarget target, EntityContainer targetContainer) { target.Previous = target.Next; target.Next = target.Previous; targetContainer.Add(target); } //What should a container do on each rendering frame //This method should be overriden public void OnRender() { //坐标刷新 //边界判定 //碰撞判定 } public void ReportCapacity() { Console.WriteLine(_limit.Value); } } }