コード例 #1
0
        public override void Initialize()
        {
            _menuWidth = _vp.Width * 0.8f;
            _menuHeight = _vp.Height * 0.3f;
            _margin = _menuWidth/24f;
            MenuItemWidth = (int)(_gameplayScreen.VP.Width * 0.06);
            MenuItemHeight = (int)(_gameplayScreen.VP.Height * 0.1);
            _position = new Vector2(_vp.X + _vp.Width * 0.1f, _vp.Y + _vp.Height * 0.6f);
            _backgroundRectangle = new Rectangle((int)_position.X, (int)_position.Y, (int)_menuWidth, (int)_menuHeight);
            _gradientTexture = ImageManager.GradientTexture;
            _transitionAlpha = 0.5f;
            _items = new List<BuildStructureMenuItem>();
            _dropArea = new Rectangle();
            BuildStructureMenuItem a = new BuildStructureMenuItem(ImageManager.GunTowerTexture, "Gun Tower", 5);
            _items.Add(a);
            BuildStructureMenuItem b = new BuildStructureMenuItem(ImageManager.LaserTowerTexture, "Laser Tower", 10);
            _items.Add(b);
            BuildStructureMenuItem c = new BuildStructureMenuItem(ImageManager.HealTowerTexture, "Heal Tower", 15);
            _items.Add(c);

            for (int i = 0; i < _items.Count; i++)
            {
                _items[i].PositionInMenu(new Rectangle((int)(_position.X + MenuSlotWidth * i), (int)(_position.Y+_margin),
                                                       (int)MenuItemWidth, (int)MenuItemHeight));
            }
            _selectedItem = null;
            base.Initialize();
        }
コード例 #2
0
 public static void HandleBuildMenuSelection(Point screenInputTouchPosition, GestureSample gest)
 {
     //try
     //{
         if (_selectedItem == null && IsActive)
         {
             foreach (var menuItem in
                 Items.Where(menuItem => menuItem.Body.Contains(screenInputTouchPosition)).
                     Where(
                         menuItem => menuItem.Cost <= Player.resources))
             {
                 _selectedItem = menuItem;
                 IsActive = false;
             }
         }
         else if (_selectedItem != null)
         {
             _selectedItem.Center = gest.Position;
         }
       //  }
     //catch (Exception e)
     //{
       //  Debug.WriteLine("Problem at build menu selection" + e.Message);
     //}
 }
コード例 #3
0
        public static void TryPlaceDefensiveStructure()
        {
            if (_selectedItem != null && !IsActive)
            {
                if (CheckBuildArea())
                {
                    Vector2 placePosition = new Vector2(_dropArea.Center.X, _dropArea.Center.Y) + GameplayScreen.Camera.Position;
                    DefensiveStructure tower;
                    switch (_selectedItem.Identifier)
                    {
                        case ("Gun Tower"):
                            tower = new GunTower(_gameplayScreen) { Center = placePosition };
                            break;
                        case ("Laser Tower"):
                            tower = new LaserTower(_gameplayScreen) { Center = placePosition };
                            break;
                        case ("Heal Tower"):
                            tower = new HealTower(_gameplayScreen) { Center = placePosition };
                            break;
                        default:
                            tower = null;
                            break;

                    }
                    if (tower != null)
                    {
                        tower.Initialize();
                        PlayerManager.PlayerCharacters.Add(tower);
                        Player.resources -= _selectedItem.Cost;
                    }
                }
                _selectedItem.Center = _selectedItem.MenuPositionCenter;
                _selectedItem = null;
                IsActive = false;
            }
        }