コード例 #1
0
        private Vector3 TrouverPositionRandom()
        {
            float positionRandomX = générateurAléatoire.Next(-TerrainDeJeu.NbColonnes / 2, TerrainDeJeu.NbColonnes / 2);
            float positionRandomY = générateurAléatoire.Next(-TerrainDeJeu.NbRangées / 2, TerrainDeJeu.NbRangées / 2);

            //positionRandomX = MathHelper.Max(MathHelper.Min(positionRandomX, TerrainDeJeu.NbColonnes / 2), -TerrainDeJeu.NbColonnes / 2);
            //positionRandomY = MathHelper.Max(MathHelper.Min(positionRandomY, TerrainDeJeu.NbColonnes / 2), -TerrainDeJeu.NbColonnes / 2);

            Vector2 position = new Vector2(positionRandomX + TerrainDeJeu.NbColonnes / 2, positionRandomY + TerrainDeJeu.NbRangées / 2);

            float hauteur = (TerrainDeJeu.GetPointSpatial((int)Math.Round(position.X, 0), TerrainDeJeu.NbRangées - (int)Math.Round(position.Y, 0)) + Vector3.Zero).Y;

            return(new Vector3(positionRandomX, hauteur, positionRandomY));
        }
コード例 #2
0
        private void GérerÉtat()
        {
            switch (ÉtatJeu)
            {
            case ÉtatsJeu.JEU3D:
                LeJoueur.Visible = true;
                GérerCollision();
                break;

            case ÉtatsJeu.COMBAT:
                if (!(Game.Components.Contains(Game.Components.Where(c => c is Combat) as Combat)) && !Flags.Combat)
                {
                    if (PokemonEnCollision.UnPokemon.EstEnVie)
                    {
                        LeJoueur.Visible = false;
                        Vector2 vecteurPosition   = new Vector2(LeJoueur.Position.X - 1 + TerrainDeJeu.NbColonnes / 2, LeJoueur.Position.Z + 2 + TerrainDeJeu.NbRangées / 2);
                        float   posY              = (TerrainDeJeu.GetPointSpatial((int)Math.Round(vecteurPosition.X, 0), TerrainDeJeu.NbRangées - (int)Math.Round(vecteurPosition.Y, 0)) + Vector3.Zero).Y;
                        Vector3 positionjoueurpok = new Vector3(LeJoueur.Position.X + 2, posY, LeJoueur.Position.Z + 2);

                        Vector2 vecteurPositionopponent = new Vector2(LeJoueur.Position.X + TerrainDeJeu.NbColonnes / 2, LeJoueur.Position.Z + TerrainDeJeu.NbRangées / 2);
                        float   posYopponent            = (TerrainDeJeu.GetPointSpatial((int)Math.Round(vecteurPosition.X, 0), TerrainDeJeu.NbRangées - (int)Math.Round(vecteurPosition.Y, 0)) + Vector3.Zero).Y;
                        //ObjetDeBase PokemonLancer = new ObjetDeBase(Game, TrouverDossierModèle(LeJoueur[0].PokedexNumber), ÉCHELLE_OBJET, new Vector3(0, (float)(16 * Math.PI / 10), 0), new Vector3(LeJoueur.Position.X + 1, LeJoueur.Position.Y, LeJoueur.Position.Z + 1));
                        PokemonJoueur = new ObjetDeBase(Game, TrouverDossierModèle(LeJoueur.NextPokemonEnVie().PokedexNumber), ÉCHELLE_OBJET * 3, new Vector3(0, (float)(8 * Math.PI / 5), 0), positionjoueurpok);

                        Game.Components.Add(new Afficheur3D(Game));
                        Game.Components.Add(PokemonJoueur);
                        PokemonEnCollision.Position = new Vector3(LeJoueur.Position.X - 6, posYopponent + 2, LeJoueur.Position.Z);
                        PokemonEnCollision.Rotation = new Vector3(0, -(float)(7 * Math.PI / 5), 0);
                        PokemonSurLeTerrain[indexPokemonEnCollision] = PokemonEnCollision;
                        (PokemonSurLeTerrain[indexPokemonEnCollision] as ObjetDeBase).CalculerMonde();
                        (PokemonSurLeTerrain[indexPokemonEnCollision] as ObjetDeBase).Initialize();
                        Flags.Combat = true;
                        LeCombat     = new Combat(Game, PositionBoxMessage, LeJoueur, PokemonEnCollision.UnPokemon, INTERVALLE_MAJ_STANDARD);
                        Game.Components.Add(LeCombat);
                    }

                    //ObjetDeBase PokemonLancer = new ObjetDeBase(Game,"09/09",ÉCHELLE_OBJET,new Vector3(0,(float)(16*Math.PI/10),0),new Vector3(LeJoueur.Position.X + 1,LeJoueur.Position.Y, LeJoueur.Position.Z +1 ));
                    //Game.Components.Add(new Afficheur3D(Game));
                    //Game.Components.Add(PokemonLancer);
                    //PokemonEnCollision.Position = new Vector3(PokemonLancer.Position.X -1 , PokemonLancer.Position.Y, PokemonLancer.Position.Z- 1);
                    //PokemonSurLeTerrain[indexPokemonEnCollision] = PokemonEnCollision;
                    //Flags.Combat = true;
                    //LeCombat = new Combat(Game, PositionBoxStandard, LeJoueur, new Pokemon(Game, 1/*no de pokédex du pokémon wild que l'on veut combattre*/), INTERVALLE_MAJ_STANDARD);
                    //Game.Components.Add(LeCombat);

                    //CaméraJeu.Cible = new Vector3(LeJoueur.Position.X + 3, LeJoueur.Position.Y + 3, LeJoueur.Position.Z);
                    //CaméraJeu.CréerPointDeVue(CaméraJeu.Position, CaméraJeu.Cible, CaméraJeu.OrientationVerticale);
                }
                if (!Combat.EnCombat)    //Si le combat est terminé, on veut retourner à l'état Jeu3D avec le player et son modèle
                {
                    //PokemonJoueur.Visible = false;
                    PokemonEnCollision.ÀDétruire = true;
                    PokemonJoueur.ÀDétruire      = true;
                    ÉtatJeu = ÉtatsJeu.JEU3D;
                }
                if (Combat.EnCombat && LeCombat.GetPokemonEstChangé)     //Ajouter si possible la condition que le pokémon est changé
                {
                    PokemonJoueur.ChangerModèle(TrouverDossierModèle(LeCombat.NoPokédexUserPokemon));
                }
                //PokemonEnCollision.ChangerModèle(TrouverDossierModèle(LeCombat.NoPokédexOpponentPokemon));
                break;
                //case États.GYM:
                //    GérerVitesseDéplacement();
                //    GérerComputer();
                //    GérerCombat();
                //    break;
                //default: //États.FIN:
                //    Fin();
                //    SauvegardeAuto();
                //    break;
                //
            }
        }