Exemplo n.º 1
0
        /// <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;
            }
        }
Exemplo n.º 2
0
 public ShowBangEventArgs(BubbleUtil util, Bubbles.CollisionResult bang)
 {
     Bang = bang;
     Util = util;
 }
Exemplo n.º 3
0
 public void StartEngine(Bubbles bubPact, uint engineId, uint intervalMS)
 {
     bubPact.StartEngine(engineId, delegate(List <Bubbles.CollisionResult> list)
                         { BubbleUtil.Bangs(this, engineId, list); }, intervalMS);
 }
Exemplo n.º 4
0
 public BangButton(BubbleUtil util, uint engineId = 0)
 {
     this.SetStyle(ControlStyles.UserPaint, true); Util = util; EngineId = engineId;
 }