예제 #1
0
        public void Update(Inventaire inventaire, Joueur joueur, KeyboardState touche)
        {
            #region Raccourcis Souris
            MouseState mState = Mouse.GetState();
            curseur_rect = new Rectangle(mState.X, mState.Y, 2, 2);

            if (inventaire.inventaireOuvert) //insere l'objet de l'inventaire a la barre d'action
            {
                if (mState.RightButton == ButtonState.Pressed)
                {
                    for (int i = 0; i < inventaire.inventaire.GetLength(0); i++)
                    {
                        for (int j = 0; j < inventaire.inventaire.GetLength(1); j++)
                        {
                            if (inventaire.posObjets[i, j].Intersects(curseur_rect) && inventaire.quantitesObjets[i, j] > 0 && !cliqueobjet_right)
                            {
                                if (!check_exist_barre(inventaire.inventaire[i, j]))
                                {
                                    clique_item(inventaire.inventaire[i, j], inventaire.quantitesObjets[i, j]);
                                    cliqueobjet_right = true;
                                }

                            }

                        }
                    }
                }
            }

            if (mState.LeftButton == ButtonState.Pressed) //utilise l'objet dans la barre d'action
            {
                for (int i = 0; i < inventaire.inventaire.GetLength(0); i++)
                {
                    for (int j = 0; j < inventaire.inventaire.GetLength(1); j++)
                    {
                        for (int k = 0; k < barre_action.GetLength(0); k++)
                        {
                            if (pos_objet[k].Intersects(curseur_rect) && quantite_objet[k] > 0 && !cliqueobjet_left)
                            {
                                if (barre_action[k].type_de_l_objet == inventaire.inventaire[i, j].type_de_l_objet)
                                {
                                    if (inventaire.use_HealthPotion(joueur, inventaire.inventaire[i, j]) || inventaire.use_ManaPotion(joueur, inventaire.inventaire[i, j]))
                                    {
                                        barre_action[k].Utiliser(joueur);
                                        quantite_objet[k]--;
                                        inventaire.quantitesObjets[i, j]--;

                                        if (quantite_objet[k] == 0)
                                        {
                                            barre_action[k] = new Item("Null", Item.type_objet.Null);
                                        }

                                        if (inventaire.quantitesObjets[i, j] == 0)
                                        {
                                            inventaire.inventaire[i, j] = new Item("Null", Item.type_objet.Null);
                                        }

                                        cliqueobjet_left = true;
                                    }
                                }
                            }
                        }
                    }

                }
            }

            if (mState.RightButton == ButtonState.Pressed) //retire l'objet de la barre d'action
            {
                stop_ = false;
                for (int i = 0; i < barre_action.GetLength(0); i++)
                {
                    if (pos_objet[i].Intersects(curseur_rect) && quantite_objet[i] > 0 && !stop_)
                    {
                        quantite_objet[i] = 0;
                        barre_action[i] = new Item("Null", Item.type_objet.Null);
                        stop_ = true;
                    }
                }

            }

            if (mState.RightButton == ButtonState.Released)
                cliqueobjet_right = false;

            if (mState.LeftButton == ButtonState.Released)
                cliqueobjet_left = false;

            #endregion Raccourcis Souris

            #region Raccourcis clavier

            if (touche.IsKeyDown(Keys.D1) && !key_stop1)
            {
                Keyboard_UseItem(inventaire, 0, joueur);
                key_stop1 = true;
            }

            if (touche.IsKeyDown(Keys.D2) && !key_stop2)
            {
                Keyboard_UseItem(inventaire, 1, joueur);
                key_stop2 = true;
            }

            if (touche.IsKeyDown(Keys.D3) && !key_stop3)
            {
                Keyboard_UseItem(inventaire, 2, joueur);
                key_stop3 = true;
            }

            if (touche.IsKeyDown(Keys.D4) && !key_stop4)
            {
                Keyboard_UseItem(inventaire, 3, joueur);
                key_stop4 = true;
            }

            if (touche.IsKeyDown(Keys.D5) && !key_stop5)
            {
                Keyboard_UseItem(inventaire, 4, joueur);
                key_stop5 = true;
            }

            if (touche.IsKeyDown(Keys.D6) && !key_stop6)
            {
                Keyboard_UseItem(inventaire, 5, joueur);
                key_stop6 = true;
            }

            if (touche.IsKeyDown(Keys.D7) && !key_stop7)
            {
                Keyboard_UseItem(inventaire, 6, joueur);
                key_stop7 = true;
            }

            if (touche.IsKeyDown(Keys.D8) && !key_stop8)
            {
                Keyboard_UseItem(inventaire, 7, joueur);
                key_stop8 = true;
            }

            if (touche.IsKeyUp(Keys.D1))
            {
                key_stop1= false;
            }

            if (touche.IsKeyUp(Keys.D2))
            {
                key_stop2 = false;
            }
            if (touche.IsKeyUp(Keys.D3))
            {
                key_stop3 = false;
            }

            if (touche.IsKeyUp(Keys.D4))
            {
                key_stop4 = false;
            }

            if (touche.IsKeyUp(Keys.D5))
            {
                key_stop5 = false;
            }

            if (touche.IsKeyUp(Keys.D6))
            {
                key_stop6 = false;
            }

            if (touche.IsKeyUp(Keys.D7))
            {
                key_stop7 = false;
            }

            if (touche.IsKeyUp(Keys.D8))
            {
                key_stop8 = false;
            }

            #endregion Raccourcis clavier

            if (empty_barre())
            {
                ReinitialiserBarre();
            }
        }
예제 #2
0
        // fonction qui permet d'utiliser les raccourcis clavierZ
        public void Keyboard_UseItem(Inventaire inventaire, int raccourci_barre, Joueur joueur)
        {
            key_stop = false;

            for (int i = 0; i < inventaire.inventaire.GetLength(0); i++)
            {
                for (int j = 0; j < inventaire.inventaire.GetLength(1); j++)
                {
                    if (inventaire.inventaire[i, j].type_de_l_objet == barre_action[raccourci_barre].type_de_l_objet && !key_stop)
                    {
                        if (inventaire.use_HealthPotion(joueur, inventaire.inventaire[i, j]) || inventaire.use_ManaPotion(joueur, inventaire.inventaire[i, j]))
                        {
                            barre_action[raccourci_barre].Utiliser(joueur);
                            quantite_objet[raccourci_barre]--;
                            inventaire.quantitesObjets[i, j]--;

                            if (quantite_objet[raccourci_barre] == 0)
                            {
                                barre_action[raccourci_barre] = new Item("Null", Item.type_objet.Null);
                            }

                            if (inventaire.quantitesObjets[i, j] == 0)
                            {
                                inventaire.inventaire[i, j] = new Item("Null", Item.type_objet.Null);
                            }

                            key_stop = true;
                        }
                    }
                }
            }
        }