//obsluga przycisniecia przyciskow
 //kupienie statku
 private void OnShipBtnMouseReleased(object sender, BtnReleasedEventArgs e)
 {
     PlayerManager.Instance.changeShip(e.arg);
     PlayerHud.Instance().ShipImg = new Sprite(new Texture(PlayerManager.Instance.ShipInfo.ShipTexture));
     PlayerHud.Instance().ShipImg.Position = new Vector2f(1428 - PlayerHud.Instance().ShipImg.Texture.Size.X / 2, 200 - PlayerHud.Instance().ShipImg.Texture.Size.Y / 2);
     PlayerHud.Instance().update();
 }
 public static PlayerHud Instance()
 {
     if (instance == null)
     {
         instance = new PlayerHud();
     }
     return(instance);
 }
 public void LoadDataFromFile()
 {
     try
     {
         using (Stream stream = File.Open("ship.txt", FileMode.Open))
         {
             BinaryFormatter bf = new BinaryFormatter();
             PlayerManager.Instance = (PlayerManager)bf.Deserialize(stream);
             PlayerHud.Instance().PlayerInfo = PlayerManager.Instance;
         }
     }
     catch (FileNotFoundException)
     {
         System.Windows.Forms.MessageBox.Show("Brak pliku zapisu.");
     }
 }
Exemple #4
0
 private void OnBtnLoadMouseReleased(object sender, BtnReleasedEventArgs e)
 {
     try
     {
         PlayerMenu.Instance().cleanUp();  //napisac koniecznie wczytywanie teksturki jak sie wczytuje stan gry z pliku
         using (Stream stream = File.Open("ship.txt", FileMode.Open))
         {
             BinaryFormatter bf = new BinaryFormatter();
             PlayerManager.Instance = (PlayerManager)bf.Deserialize(stream);
             int index = PlayerManager.Instance.currentShip;
             PlayerManager.Instance.ShipInfo.ShipTexture = new Texture(ResourcesManager.resourcesPath + PlayerManager.Instance.ShipPrefabs[index].TexturePath);
             PlayerHud.Instance().PlayerInfo = PlayerManager.Instance;
         }
         sceneManager.changeScene(PlayerMenu.Instance());
     }
     catch (System.IO.FileNotFoundException)
     {
         MessageBox.Show("Brak pliku zapisu");
     }
 }
 public override void updateComponents(SceneManager sceneManager)
 {
     base.updateComponents(sceneManager);
     if (activePanel == panelList[0])
     {
         if (firstElemIndex == 0)
         {
             componentList.Find(x => x.componentID == "left").Visible = false;
             componentList.Find(x => x.componentID == "left").Active  = false;
         }
         else
         {
             componentList.Find(x => x.componentID == "left").Visible = true;
             componentList.Find(x => x.componentID == "left").Active  = true;
         }
         if (firstElemIndex == panelList[0].panelBtnList.Count - 5)
         {
             componentList.Find(x => x.componentID == "right").Visible = false;
             componentList.Find(x => x.componentID == "right").Active  = false;
         }
         else
         {
             componentList.Find(x => x.componentID == "right").Visible = true;
             componentList.Find(x => x.componentID == "right").Active  = true;
         }
         for (int i = 0; i < panelList[0].panelLblList.Count; i++)
         {
             panelList[0].panelLblList[i].Text = PlayerManager.Instance.upgradeCost((stats)(i - 1)).ToString() + " cr";
         }
     }
     else if (activePanel == panelList[2])
     {
         for (int i = 0; i < panelList[2].panelLblList.Count; i++)
         {
             panelList[2].panelLblList[i].Text = PlayerManager.Instance.powerupCost((powerups)i) + " cr";
         }
     }
     PlayerHud.Instance().update();
     cursor.update();
 }
 //spełnienie klasy abstracyjnej
 public override void drawComponents(SceneManager sceneManager)
 {
     base.drawComponents(sceneManager);
     sceneManager.window.Draw(PlayerHud.Instance());
     sceneManager.window.Draw(cursor);
 }
        //inicjalizacja, dodawanie komponentów do listy komponentów
        public override void initialize(RenderWindow window)
        {
            if (!initialized)
            {
                panelList = new List <Panel>();
                PlayerHud.Instance().PlayerInfo = PlayerManager.Instance;
                PlayerHud.Instance().ShipImg = new Sprite(new Texture(PlayerManager.Instance.ShipInfo.ShipTexture));
                PlayerHud.Instance().ShipImg.Position = new Vector2f(1428 - PlayerHud.Instance().ShipImg.Texture.Size.X / 2, 200 - PlayerHud.Instance().ShipImg.Texture.Size.Y / 2);
                PlayerHud.Instance().update();

                OurLabel pnlInfo = new OurLabel(new Texture(ResourcesManager.resourcesPath + "infoPanel.png"), "", 0, new Vector2i(1114, 452));
                pnlInfo.setPosition(new Vector2f(83, 171));
                componentList.Add(pnlInfo);

                #region workbenchPanel
                Panel workbenchPanel = new Panel();
                workbenchPanel.PanelName = "Warsztat";
                string[] statsPaths =
                {
                    "btnRepairSprite.png",
                    "btnSpeedSprite.png",
                    "btnArmorSprite.png",
                    "btnAccuracySprite.png",
                    "btnFireRateSprite.png",
                    "btnFireDmgSprite.png"
                };
                int[] statsArgs = { -1, 0, 1, 2, 3, 4 };

                for (int i = 0; i < statsPaths.Length; i++)
                {
                    OurButton button = new OurButton(new Texture(ResourcesManager.resourcesPath + statsPaths[i]), new Vector2i(200, 199), "", 0);
                    button.componentID = "btnStat" + i;
                    button.ArgToPass   = statsArgs[i];
                    workbenchPanel.panelBtnList.Add(button);
                }

                foreach (OurButton button in workbenchPanel.panelBtnList)
                {
                    button.Visible        = false;
                    button.Active         = false;
                    button.MouseHovered  += OnStatBtnMouseHovered;
                    button.MouseReleased += OnStatBtnMouseReleased;
                    componentList.Add(button);
                }
                for (int i = 0; i < 5; i++)
                {
                    workbenchPanel.panelBtnList[i].Visible = true;
                    workbenchPanel.panelBtnList[i].Active  = true;
                    workbenchPanel.panelBtnList[i].setPosition(new Vector2f(80 + 230 * i, 647));
                }
                for (int i = 0; i < 6; i++)
                {
                    workbenchPanel.panelLblList.Add(new OurLabel(new Texture(ResourcesManager.resourcesPath + "blank.png"), PlayerManager.Instance.upgradeCost((stats)(i - 1)).ToString() + " cr", 28));

                    workbenchPanel.panelLblList[i].setPosition(new Vector2f(workbenchPanel.panelBtnList[i].Position.X + 35, workbenchPanel.panelBtnList[i].Position.Y + 165));
                    workbenchPanel.panelLblList[i].Visible = false;
                    componentList.Add(workbenchPanel.panelLblList[i]);
                }
                for (int i = 0; i < 5; i++)
                {
                    workbenchPanel.panelLblList[i].Visible = true;
                }

                workbenchInfo = readPanelInfo("workbenchInfo.xml");
                OurLabel workbenchDisplayedInfo = new OurLabel(new Texture(ResourcesManager.resourcesPath + "blank.png"), "", 32);
                workbenchDisplayedInfo.TextAlign   = align.left;
                workbenchDisplayedInfo.componentID = "workbenchDisplayedInfo";
                workbenchDisplayedInfo.setPosition(new Vector2f(250, 300));
                componentList.Add(workbenchDisplayedInfo);
                workbenchPanel.panelInfoLblList.Add(workbenchDisplayedInfo);

                panelList.Add(workbenchPanel);
                #endregion

                #region shipshopPanel
                Panel shipshopPanel = new Panel();
                shipshopPanel.PanelName = "Salon";
                string[] shipsPaths =
                {
                    "ship1BtnSprite.png",
                    "ship2BtnSprite.png",
                    "ship3BtnSprite.png",
                    "ship4BtnSprite.png",
                    "ship5BtnSprite.png"
                };

                for (int i = 0; i < shipsPaths.Length; i++)
                {
                    OurButton button = new OurButton(new Texture(ResourcesManager.resourcesPath + shipsPaths[i]), new Vector2i(200, 199), "", 0);
                    button.componentID = "btnShip" + i;
                    button.ArgToPass   = i;
                    shipshopPanel.panelBtnList.Add(button);
                }
                foreach (OurButton button in shipshopPanel.panelBtnList)
                {
                    button.Visible        = false;
                    button.Active         = false;
                    button.MouseHovered  += OnShipMouseHovered;
                    button.MouseReleased += OnShipBtnMouseReleased;
                    componentList.Add(button);
                }


                for (int i = 0; i < 5; i++)
                {
                    shipshopPanel.panelBtnList[i].Visible = true;
                    shipshopPanel.panelBtnList[i].Active  = true;
                    shipshopPanel.panelBtnList[i].setPosition(new Vector2f(80 + 230 * i, 647));
                }
                for (int i = 0; i < 5; i++)
                {
                    shipshopPanel.panelLblList.Add(new OurLabel(new Texture(ResourcesManager.resourcesPath + "blank.png"), "", 28));
                    shipshopPanel.panelLblList[i].Text = PlayerManager.Instance.ShipPrefabs[i].Price + " cr";
                    shipshopPanel.panelLblList[i].setPosition(new Vector2f(shipshopPanel.panelBtnList[i].Position.X + 100, shipshopPanel.panelBtnList[i].Position.Y + 180));
                    shipshopPanel.panelLblList[i].Visible = false;
                    componentList.Add(shipshopPanel.panelLblList[i]);
                }

                OurLabel ShipshopDisplayedInfo = new OurLabel(new Texture(ResourcesManager.resourcesPath + "blank.png"), "", 30);
                ShipshopDisplayedInfo.componentID = "ShipShopDisplayedInfo";
                ShipshopDisplayedInfo.Text        = "";
                ShipshopDisplayedInfo.setPosition(new Vector2f(470, 400));
                componentList.Add(ShipshopDisplayedInfo);
                shipshopPanel.panelInfoLblList.Add(ShipshopDisplayedInfo);

                OurLabel shipImg = new OurLabel(new Texture(ResourcesManager.resourcesPath + "blank.png"), "", 0, new Vector2i(160, 117));
                shipImg.componentID = "ShipShopShipImg";
                shipImg.setPosition(new Vector2f(900, 330));
                componentList.Add(shipImg);
                shipshopPanel.panelInfoLblList.Add(shipImg);

                panelList.Add(shipshopPanel);
                #endregion

                #region powerupsPanel

                Panel powerupsPanel = new Panel();

                powerupsPanel.PanelName = "Sklep";
                string[] pupsPaths =
                {
                    "btnRocketSprite.png",
                    "btnLaserSprite.png",
                    "btnBombSprite.png",
                    "btnWaveSprite.png",
                    "btnShieldSprite.png"
                };
                for (int i = 0; i < pupsPaths.Length; i++)
                {
                    OurButton button = new OurButton(new Texture(ResourcesManager.resourcesPath + pupsPaths[i]), new Vector2i(200, 199), "", 0);
                    button.componentID = "btnPUp" + i;
                    button.ArgToPass   = i;
                    powerupsPanel.panelBtnList.Add(button);
                }

                foreach (OurButton button in powerupsPanel.panelBtnList)
                {
                    button.Visible        = false;
                    button.Active         = false;
                    button.MouseHovered  += OnPowerupMouseHovered;
                    button.MouseReleased += OnPowerupBtnMouseReleased;
                    componentList.Add(button);
                }
                for (int i = 0; i < 5; i++)
                {
                    powerupsPanel.panelBtnList[i].Visible = true;
                    powerupsPanel.panelBtnList[i].Active  = true;
                    powerupsPanel.panelBtnList[i].setPosition(new Vector2f(80 + 230 * i, 647));
                }

                for (int i = 0; i < 5; i++)
                {
                    powerupsPanel.panelLblList.Add(new OurLabel(new Texture(ResourcesManager.resourcesPath + "blank.png"), "", 28));
                    powerupsPanel.panelLblList[i].Text = PlayerManager.Instance.powerupCost((powerups)i) + " cr";
                    powerupsPanel.panelLblList[i].setPosition(new Vector2f(powerupsPanel.panelBtnList[i].Position.X + 100, powerupsPanel.panelBtnList[i].Position.Y + 180));
                    powerupsPanel.panelLblList[i].Visible = false;
                    componentList.Add(powerupsPanel.panelLblList[i]);
                }

                powerupInfo = readPanelInfo("powerupInfo.xml");
                OurLabel powerupDisplayedInfo = new OurLabel(new Texture(ResourcesManager.resourcesPath + "blank.png"), "", 32);
                powerupDisplayedInfo.TextAlign   = align.left;
                powerupDisplayedInfo.componentID = "powerupDisplayedInfo";
                powerupDisplayedInfo.setPosition(new Vector2f(250, 300));
                componentList.Add(powerupDisplayedInfo);
                powerupsPanel.panelInfoLblList.Add(powerupDisplayedInfo);

                OurLabel currentPowerups = new OurLabel(new Texture(ResourcesManager.resourcesPath + "blank.png"), "", 32);
                currentPowerups.componentID = "currentPowerups";
                currentPowerups.TextAlign   = align.left;
                currentPowerups.Text        = "Posiadasz: ";
                currentPowerups.setPosition(new Vector2f(250, 520));
                componentList.Add(currentPowerups);

                powerupsPanel.panelInfoLblList.Add(currentPowerups);


                panelList.Add(powerupsPanel);
                #endregion

                activePanel = workbenchPanel;
                ChangePanel(workbenchPanel);


                #region SomeButtons
                OurLabel pnlName = new OurLabel(new Texture(ResourcesManager.resourcesPath + "blank.png"), workbenchPanel.PanelName, 60);
                pnlName.setPosition(new Vector2f(640 - pnlName.Size.X / 2, 210));
                pnlName.TextColor   = new Color(225, 57, 6);
                pnlName.componentID = "panelName";
                componentList.Add(pnlName);


                OurButton btnMission = new OurButton(new Texture(ResourcesManager.resourcesPath + "btnMission.png"), new Vector2i(300, 99), "", 0);
                btnMission.setPosition(new Vector2f(633, 21));
                btnMission.MouseReleased += OnBtnMissionMouseReleased;
                btnMission.componentID    = "mission";

                componentList.Add(btnMission);

                OurButton btnLeftScroll = new OurButton(new Texture(ResourcesManager.resourcesPath + "btnLeftSprite.png"), new Vector2i(40, 199), "", 0);
                btnLeftScroll.setPosition(new Vector2f(28, 647));
                btnLeftScroll.componentID    = "left";
                btnLeftScroll.MouseReleased += OnBtnLeftScrollMouseReleased;
                componentList.Add(btnLeftScroll);

                OurButton btnRightScroll = new OurButton(new Texture(ResourcesManager.resourcesPath + "btnRightSprite.png"), new Vector2i(40, 199), "", 0);
                btnRightScroll.componentID = "right";
                btnRightScroll.setPosition(new Vector2f(1212, 647));
                btnRightScroll.MouseReleased += OnBtnRightScrollMouseReleased;
                componentList.Add(btnRightScroll);



                OurButton btnScrollPanelLeft = new OurButton(new Texture(ResourcesManager.resourcesPath + "btnLeftPanelSprite.png"), new Vector2i(40, 449), "", 0);
                btnScrollPanelLeft.setPosition(new Vector2f(28, 171));
                btnScrollPanelLeft.MouseReleased += OnScrollPanelLeftMouseReleased;
                componentList.Add(btnScrollPanelLeft);

                OurButton btnScrollPanelRight = new OurButton(new Texture(ResourcesManager.resourcesPath + "btnRightPanelSprite.png"), new Vector2i(40, 449), "", 0);
                btnScrollPanelRight.setPosition(new Vector2f(1212, 171));
                btnScrollPanelRight.MouseReleased += OnScrollPanelRightMouseReleased;
                componentList.Add(btnScrollPanelRight);
                #endregion

                //cursor
                cursor = Cursor.Instance(new Texture(ResourcesManager.resourcesPath + "cursor.png"), new Vector2f(1f, 1f));

                initialized = true;
            }
        }