/// <summary> /// The collision engine callback where it tells us the collisions. This is on a different thread so we put the results /// in a concurrent queue /// /// Items /no longer/ in a hit state are marked as such in the HitLookup /// </summary> /// <param name="bangs"></param> #region public static void Bangs(BubPactUtil me, List<BubPact.Trilateration> bangs) public static void Bangs(BubbleUtil me, uint engineId, List <Bubbles.CollisionResult> bangs) { // put the collisions on the thread safe queue foreach (var bang in bangs) { me.BangQueue.Enqueue(bang); } // mark all those items that are no longer hit foreach (var key in me.HitLookup.Keys. AsParallel(). Where(h => engineId == h.EngineId && bangs.Select(t => t.mCenterID).Contains(h.BubbleId) == false)) { me.HitLookup[key] = false; } }
public ShowBangEventArgs(BubbleUtil util, Bubbles.CollisionResult bang) { Bang = bang; Util = util; }
public void StartEngine(Bubbles bubPact, uint engineId, uint intervalMS) { bubPact.StartEngine(engineId, delegate(List <Bubbles.CollisionResult> list) { BubbleUtil.Bangs(this, engineId, list); }, intervalMS); }
public BangButton(BubbleUtil util, uint engineId = 0) { this.SetStyle(ControlStyles.UserPaint, true); Util = util; EngineId = engineId; }