Beispiel #1
0
        public void remove(batchEnum _enum, GameObject _obj)
        {
            GameObjNode node = findGameObj(_obj);

            if (node != null)
            {
                if (node.prev != null)
                {       // middle or last node
                    node.prev.next = node.next;
                }
                else
                {  // first
                    this.active = node.next;
                }

                if (node.next != null)
                {       // middle node
                    node.next.prev = node.prev;
                }

                addBodyToDestroy(_obj.physicsObj.body);

                if (_obj.spriteRef != null)
                {
                    SBNode SBNode = SpriteBatchManager.Instance().getBatch(_enum);
                    SBNode.removeDisplayObject(_obj.spriteRef);
                }

                if (_obj.physicsObj != null)
                {
                    PhysicsMan.Instance().removePhysicsObj(_obj.physicsObj);
                }
            }
        }
Beispiel #2
0
        public GameObject FindByID(int id)
        {
            ManLink ptr = this.active;

            ManLink outNode = null;

            while (ptr != null)
            {
                if ((ptr as GameObjNode).gameObj.GameID.Equals(id))
                {
                    outNode = ptr;
                    break;
                }
                //{
                //    outNode = ptr;
                //    break;
                //}
                ptr = ptr.next;
            }
            GameObjNode tmpNode = outNode as GameObjNode;

            if (tmpNode != null)
            {
                return(tmpNode.gameObj);
            }
            else
            {
                return(null);
            }
            //return (outNode as GameObjNode).gameObj;
            // return (CollisionManager.GameObject)outNode;
        }
        // For Linked List
        public void addGameObj(GameObject _obj)
        {
            GameObjNode node = new GameObjNode();

            node.Set(_obj);
            node.gameObj.gameId = count++;
            this.privActiveAddToFront((ManLink)node, ref this.active);
        }
Beispiel #4
0
        // For Linked List
        public void addGameObj(GameObject _obj)
        {
            GameID_To_TransferToGameObject++;
            GameObjNode node = new GameObjNode();

            node.Set(_obj);
            node.gameObj.GameID = GameID_To_TransferToGameObject;

            this.privActiveAddToFront((ManLink)node, ref this.active);
        }
Beispiel #5
0
        public void Update(World w)
        {
            ManLink ptr = this.active;

            GameObjNode gameObjNode = null;

            while (ptr != null)
            {
                gameObjNode = (GameObjNode)ptr;

                gameObjNode.gameObj.Update();

                ptr = ptr.next;
            }


            destroyBodies(w);
        }