public void Update() { time = time + DT; List <int> ids = new List <int>(); foreach (var a in actors) { if (a.Value.radius > 0) { a.Value.Update(ids); } } foreach (var id in ids) { areas.DelActor(id); } ids.Clear(); foreach (var p in points) { bool needDel = false; foreach (var a in actors) { Actor actor = a.Value; if (p.Value.IsColl(actor)) { needDel = true; actor.AddValue(PointValue); break; } } if (needDel) { ids.Add(p.Key); } } foreach (var id in ids) { areas.DelPoint(id); } areas.Update(); }