Exemple #1
0
        /// <summary>
        /// Initialize this bullet with a top level node
        /// </summary>
        /// <param name="rootNode">This is a top level node... find the first "top" node and use it to define this bullet</param>
        public void InitTopNode(BulletMLNode rootNode)
        {
            Debug.Assert(null != rootNode);

            //okay find the item labelled 'top'
            bool         bValidBullet = false;
            BulletMLNode topNode      = rootNode.FindLabelNode("top", ENodeName.action);

            if (topNode != null)
            {
                //initialize with the top node we found!
                InitNode(topNode);
                bValidBullet = true;
            }
            else
            {
                //ok there is no 'top' node, so that means we have a list of 'top#' nodes
                for (int i = 1; i < 10; i++)
                {
                    topNode = rootNode.FindLabelNode("top" + i, ENodeName.action);
                    if (topNode != null)
                    {
                        if (!bValidBullet)
                        {
                            //Use this bullet!
                            InitNode(topNode);
                            bValidBullet = true;
                        }
                        else
                        {
                            //Create a new bullet
                            IBullet newDude = _bulletManager.CreateTopBullet();

                            //set the position to this dude's position
                            newDude.X = this.X;
                            newDude.Y = this.Y;

                            //initialize with the node we found
                            newDude.InitNode(topNode);
                        }
                    }
                }
            }

            if (!bValidBullet)
            {
                //We didnt find a "top" node for this dude, remove him from the game.
                _bulletManager.RemoveBullet(this);
            }
        }
Exemple #2
0
        /// <summary>
        /// Initialize this bullet with a top level node
        /// </summary>
        /// <param name="rootNode">This is a top level node... find the first "top" node and use it to define this bullet</param>
        public void InitTopNode(BulletMLNode rootNode)
        {
            System.Diagnostics.Debug.Assert(null != rootNode);

              //okay find the item labelled 'top'
              bool bValidBullet = false;
              BulletMLNode topNode = rootNode.FindLabelNode("top", ENodeName.action);
              if (topNode != null)
              {
            //initialize with the top node we found!
            InitNode(topNode);
            bValidBullet = true;
              }
              else
              {
            //ok there is no 'top' node, so that means we have a list of 'top#' nodes
            for (int i = 1; i < 10; i++)
            {
              topNode = rootNode.FindLabelNode("top" + i, ENodeName.action);
              if (topNode != null)
              {
            if (!bValidBullet)
            {
              //Use this bullet!
              InitNode(topNode);
              bValidBullet = true;
            }
            else
            {
              //Create a new top bullet
              Bullet newDude = _bulletManager.CreateBullet(this, true);

              //set the position to this dude's position
              newDude.X = this.X;
              newDude.Y = this.Y;

              //initialize with the node we found
              newDude.InitNode(topNode);
            }
              }
            }
              }

              if (!bValidBullet)
              {
            //We didnt find a "top" node for this dude, remove him from the game.
            _bulletManager.RemoveBullet(this);
              }
        }