コード例 #1
0
        /// <summary>
        /// public virtual void toucheRelachee(KeyEventArgs e)
        ///
        /// Cette fonction gere l'evenement lorsque une touche est relachee
        /// </summary>
        /// <param name="e">
        /// L'évènement relié à l'enfoncement de la touche du clavier
        /// </param>
        override public void ToucheRelachee(KeyEventArgs e)
        {
            var keyCode = (int)e.KeyCode;

            if (!IntegratedOpenGl.EstEnPause())
            {
                if (keyCode == _touchePd1)
                {
                    _pd1Enfonce = false;
                    FonctionsNatives.relacherBouton(keyCode);
                }
                else if (keyCode == _touchePd2)
                {
                    _pd2Enfonce = false;
                    FonctionsNatives.relacherBouton(keyCode);
                }
                else if (keyCode == _touchePg1)
                {
                    _pg1Enfonce = false;
                    FonctionsNatives.relacherBouton(keyCode);
                }
                else if (keyCode == _touchePg2)
                {
                    _pg2Enfonce = false;
                    FonctionsNatives.relacherBouton(keyCode);
                }
                else if (keyCode == _toucheRessort)
                {
                    _ressortEnfonce = false;
                    FonctionsNatives.relacherBouton(keyCode);
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// public override void sourisGaucheRelachee(MouseEventArgs e)
        ///
        /// Cette fonction termine la sélection des objets
        /// </summary>
        /// <param name="e">
        /// L'évènement relié au relâchement du bouton gauche de la souris
        /// </param>
        public override void SourisGaucheRelachee(MouseEventArgs e)
        {
            var ajout = ((Control.ModifierKeys & Keys.Control) != 0);
            var nbSel = 0;

            if (!EstClic)
            {
                FonctionsNatives.terminerRectangle(PositionXDebut, PositionYDebut, e.X, e.Y);
                nbSel   = FonctionsNatives.selectionner((PositionXDebut + e.X) / 2, (PositionYDebut + e.Y) / 2, Math.Max(Math.Abs(PositionXDebut - e.X), 2), Math.Max(Math.Abs(PositionYDebut - e.Y), 2), ajout);
                EstClic = true;
            }
            else
            {
                nbSel = FonctionsNatives.selectionner(e.X, e.Y, 3, 3, ajout);
            }
            Fenetre.AfficherPanelEditionObjet(nbSel == 1);
            if (nbSel == 0)
            {
                Fenetre.DesactiverBoutons(false);
            }
            else
            {
                Fenetre.DesactiverBoutons(true);
            }
            if (nbSel == 1)
            {
                Fenetre.MettreAJourParametres();
            }
            Fenetre.AssignerBoutonSupprimer(nbSel != 0);
            Fenetre.MettreAJour();
        }
コード例 #3
0
 public EtatTest(IntegratedOpenGl editeur, bool reset)
 {
     Fenetre        = editeur;
     _touchePd1     = FonctionsNatives.getPd1();
     _touchePd2     = FonctionsNatives.getPd2();
     _touchePg1     = FonctionsNatives.getPg1();
     _touchePg2     = FonctionsNatives.getPg2();
     _toucheRessort = FonctionsNatives.getRes();
     _peutReset     = reset;
 }
コード例 #4
0
 /// <summary>
 /// public override void sourisDeplacee(object o, MouseEventArgs e)
 ///
 /// Cette fonction fait suivre le deuxième bout du mur à la souris
 /// </summary>
 /// <param name="o"></param>
 /// <param name="e">
 /// L'évènement relié au déplacement de la souris
 /// </param>
 public override void SourisDeplacee(object o, MouseEventArgs e)
 {
     Fenetre.CheckSouris(e.X, e.Y);
     if (_creerVraiMur)
     {
         FonctionsNatives.murFantome(e.X, e.Y);
         Fenetre.MettreAJour();
     }
     base.SourisDeplacee(o, e);
 }
コード例 #5
0
 /// <summary>
 /// public override void sourisGaucheEnfoncee(MouseEventArgs e)
 ///
 /// Cette fonction termine la duplication de l'objet
 /// </summary>
 /// <param name="e">
 /// L'évènement relié à l'enfoncement du bouton gauche de la souris
 /// </param>
 public override void SourisGaucheEnfoncee(MouseEventArgs e)
 {
     if (_duplicationEnCours)
     {
         FonctionsNatives.finirDuplication();
         _duplicationEnCours = false;
         Fenetre.MettreAJour();
     }
     SourisDroiteEnfoncee(e);
 }
コード例 #6
0
        /// <summary>
        /// public override void sourisDeplacee(object o, MouseEventArgs e)
        ///
        /// Cette fonction effectue la rotation de l'objet selon le déplacement de l'objet en y
        /// </summary>
        /// <param name="o"></param>
        /// <param name="e">
        /// L'évènement reliée au déplacement de la souris
        /// </param>
        public override void SourisDeplacee(object o, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                FonctionsNatives.rotaterSelection(PositionYDernier, e.Y);
                PositionYDernier = e.Y;
                Fenetre.MettreAJour();
            }

            base.SourisDeplacee(o, e);
        }
コード例 #7
0
 /// <summary>
 /// public virtual void scroll(MouseEventArgs e)
 /// </summary>
 /// <param name="e">
 /// L'évènement relié à la roulette de la souris
 /// </param>
 public virtual void Scroll(MouseEventArgs e)
 {
     if (e.Delta < 0)
     {
         FonctionsNatives.zoomOut();
     }
     else
     {
         FonctionsNatives.zoomIn();
     }
     Fenetre.MettreAJour();
 }
コード例 #8
0
 /// <summary>
 /// public virtual void sourisDeplacee(object o, MouseEventArgs e)
 /// </summary>
 /// <param name="o"></param>
 /// <param name="e">
 /// L'évènement relié au déplacement de la souris
 /// </param>
 public virtual void SourisDeplacee(object o, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Right)
     {
         var dx = PositionXDernier - e.X;
         var dy = -(PositionYDernier - e.Y);
         PositionYDernier = e.Y;
         PositionXDernier = e.X;
         FonctionsNatives.deplacerCameraInt(dx, dy);
         Fenetre.MettreAJour();
     }
 }
コード例 #9
0
 /// <summary>
 /// public override void sourisGaucheRelachee(MouseEventArgs e)
 ///
 /// Cette fonction termine le rectangle élastique de zoom
 /// </summary>
 /// <param name="e">
 /// L'évènement relié au relâchement du bouton gauche de la souris
 /// </param>
 public override void SourisGaucheRelachee(MouseEventArgs e)
 {
     if (!EstClic)
     {
         FonctionsNatives.terminerRectangle(PositionXDebut, PositionYDebut, e.X, e.Y);
         EstClic = true;
         if ((Control.ModifierKeys & Keys.Alt) != 0)
         {
             FonctionsNatives.zoomOutRect(PositionXDebut, PositionYDebut, e.X, e.Y);
         }
         else
         {
             FonctionsNatives.zoomInRect(PositionXDebut, PositionYDebut, e.X, e.Y);
         }
         Fenetre.MettreAJour();
     }
 }
コード例 #10
0
 /// <summary>
 /// public override void toucheEnfoncee(KeyEventArgs e)
 ///
 /// Cette fonction vérifie si la touche Échappe est enfoncée et agit en conséquence
 /// </summary>
 /// <param name="e">
 /// L'évènement relié à l'enfoncement d'une touche du clavier
 /// </param>
 public override void ToucheEnfoncee(KeyEventArgs e)
 {
     base.ToucheEnfoncee(e);
     if ((_nomObjet.ToString() == "mur" || _nomObjet.ToString() == "portail") && _objetCree && (_creerPortail || _creerVraiMur))
     {
         switch (e.KeyCode)
         {
         case (Keys.Escape):
             FonctionsNatives.annulerCreation();
             _creerVraiMur = false;
             _objetCree    = false;
             _creerPortail = false;
             break;
         }
     }
     Fenetre.MettreAJour();
 }
コード例 #11
0
        /// <summary>
        /// public virtual void toucheEnfoncee(KeyEventArgs e)
        ///
        /// Cette fonction vérifie quelle touche du clavier est enfoncée
        /// </summary>
        /// <param name="e">
        /// L'évènement relié à l'enfoncement de la touche du clavier
        /// </param>
        override public void ToucheEnfoncee(KeyEventArgs e)
        {
            base.ToucheEnfoncee(e);
            var keyCode = (int)e.KeyCode;

            if (!IntegratedOpenGl.EstEnPause())
            {
                if (keyCode == _touchePd1 && !_pd1Enfonce)
                {
                    _pd1Enfonce = true;
                    FonctionsNatives.appuyerBouton(keyCode);
                }
                else if (keyCode == _touchePd2 && !_pd2Enfonce)
                {
                    _pd2Enfonce = true;
                    FonctionsNatives.appuyerBouton(keyCode);
                }
                else if (keyCode == _touchePg1 && !_pg1Enfonce)
                {
                    _pg1Enfonce = true;
                    FonctionsNatives.appuyerBouton(keyCode);
                }
                else if (keyCode == _touchePg2 && !_pg2Enfonce)
                {
                    _pg2Enfonce = true;
                    FonctionsNatives.appuyerBouton(keyCode);
                }
                else if (keyCode == _toucheRessort && !_ressortEnfonce)
                {
                    _ressortEnfonce = true;
                    FonctionsNatives.appuyerBouton(keyCode);
                }
                else if (_peutReset && keyCode == (int)Keys.Back)
                {
                    FonctionsNatives.reinitialiser();
                    FonctionsNatives.demarrerPartie();
                }
                else if (keyCode == (int)Keys.B)
                {
                    FonctionsNatives.basculerDebug();
                }
            }
        }
コード例 #12
0
 /// <summary>
 /// public override void sourisDeplacee(object o, MouseEventArgs e)
 ///
 /// Cette fonction met à jour le rectangle élastique selon le déplacement de la souris
 /// </summary>
 /// <param name="o"></param>
 /// <param name="e">
 /// L'évènement relié au déplacement de la souris
 /// </param>
 public override void SourisDeplacee(object o, MouseEventArgs e)
 {
     base.SourisDeplacee(o, e);
     if (EstClic && e.Button == MouseButtons.Left)
     {
         if (Math.Abs(PositionXDebut - e.X) >= 3 || Math.Abs(PositionYDebut - e.Y) >= 3)
         {
             EstClic = false;
             FonctionsNatives.initRectangle(PositionXDebut, PositionYDebut);
         }
     }
     else if (!EstClic)
     {
         if (PositionXDernier != e.X || PositionYDernier != e.Y)
         {
             FonctionsNatives.miseAJourRectangle(PositionXDebut, PositionYDebut, PositionXDernier, PositionYDernier, e.X, e.Y);
             PositionXDernier = e.X;
             PositionYDernier = e.Y;
         }
     }
 }
コード例 #13
0
        /// <summary>
        /// public override void sourisDeplacee(object o, MouseEventArgs e)
        ///
        /// Cette fonction déplace l'étampe de duplication
        /// </summary>
        /// <param name="o"></param>
        /// <param name="e">
        /// L'évènement reliée au déplacement de la souris
        /// </param>
        public override void SourisDeplacee(object o, MouseEventArgs e)
        {
            if (!_duplicationEnCours)
            {
                PositionXDebut      = e.X;
                PositionYDebut      = e.Y;
                PositionXDernier    = e.X;
                PositionYDernier    = e.Y;
                _duplicationEnCours = FonctionsNatives.initialiserDuplication(e.X, e.Y);
                Fenetre.MettreAJour();
            }
            else
            {
                FonctionsNatives.deplacerSelection(e.X, PositionXDernier, e.Y, PositionYDernier, true);
                PositionYDernier = e.Y;
                PositionXDernier = e.X;
                Fenetre.MettreAJour();
            }

            base.SourisDeplacee(o, e);
        }
コード例 #14
0
        /// <summary>
        /// public override void sourisGaucheRelachee(MouseEventArgs e)
        ///
        /// Cette fonction crée l'objet à l'endroit où le bouton gauche de la
        /// souris a été relâché.
        /// </summary>
        /// <param name="e">
        /// L'évènement relié au relâchement du bouton gauche de la souris.
        /// </param>
        public override void SourisGaucheRelachee(MouseEventArgs e)
        {
            PositionXDernier = e.X;
            PositionYDernier = e.Y;
            if (!((Math.Abs(PositionXDebut - PositionXDernier) > 3) || (Math.Abs(PositionYDernier - PositionYDebut) > 3)))
            {
                if (_nomObjet.ToString() == "mur" && _creerVraiMur)
                {
                    _creerVraiMur = false;
                    FonctionsNatives.finirCreationMur();
                }
                else if (_nomObjet.ToString() == "mur" && !_creerVraiMur)
                {
                    _objetCree = FonctionsNatives.creerObjet(_nomObjet, _nomObjet.Length, PositionXDebut, PositionYDebut);
                    if (_nomObjet.ToString() == "mur" && _objetCree)
                    {
                        _creerVraiMur = true;
                    }
                }
                else if (_nomObjet.ToString() == "portail" && _creerPortail)
                {
                    FonctionsNatives.creerObjet(_nomObjet, _nomObjet.Length, PositionXDebut, PositionYDebut);
                    _creerPortail = false;
                }
                else
                {
                    _objetCree = FonctionsNatives.creerObjet(_nomObjet, _nomObjet.Length, PositionXDebut, PositionYDebut);
                    if (_nomObjet.ToString() == "portail" && _objetCree)
                    {
                        _creerPortail = true;
                    }
                }

                Fenetre.MettreAJour();
            }
            //System.Console.WriteLine(e.Location);
        }
コード例 #15
0
        /// <summary>
        /// public virtual void toucheEnfoncee(KeyEventArgs e)
        ///
        /// Cette fonction vérifie quelle touche du clavier est enfoncée
        /// </summary>
        /// <param name="e">
        /// L'évènement relié à l'enfoncement de la touche du clavier
        /// </param>
        public virtual void ToucheEnfoncee(KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
            case (Keys.Left):
                FonctionsNatives.deplacerCamera(0.1, 0);
                Fenetre.MettreAJour();
                break;

            case (Keys.Right):
                FonctionsNatives.deplacerCamera(-0.1, 0);
                Fenetre.MettreAJour();
                break;

            case (Keys.Up):
                FonctionsNatives.deplacerCamera(0, -0.1);
                Fenetre.MettreAJour();
                break;

            case (Keys.Down):
                FonctionsNatives.deplacerCamera(0, 0.1);
                Fenetre.MettreAJour();
                break;

            case Keys.Oemplus:
            case Keys.Add:
                FonctionsNatives.zoomIn();
                Fenetre.MettreAJour();
                break;

            case Keys.OemMinus:
            case Keys.Subtract:
                FonctionsNatives.zoomOut();
                Fenetre.MettreAJour();
                break;
            }
        }
コード例 #16
0
 /// <summary>
 /// public override void sourisGaucheEnfoncee(MouseEventArgs e)
 ///
 /// Cette fonction assigne les positions de la souris
 /// </summary>
 /// <param name="e">
 /// L'évènement relié à l'enfoncement du bouton gauche de la souris
 /// </param>
 public override void SourisGaucheEnfoncee(MouseEventArgs e)
 {
     PositionYDebut   = e.Y;
     PositionYDernier = e.Y;
     FonctionsNatives.assignerCentreSelection();
 }