예제 #1
0
 private void GérerCollision()
 {
     foreach (ObjetDeBase p in Game.Components.Where(r => r is ObjetDeBase))
     {
         if (!(p is Player) && LeJoueur.EstEnVie)
         {
             if (LeJoueur.EstEnCollision(p))
             {
                 indexPokemonEnCollision = PokemonSurLeTerrain.IndexOf(p);
                 PokemonEnCollision      = PokemonSurLeTerrain[indexPokemonEnCollision];
                 ÉtatJeu = ÉtatsJeu.COMBAT;
             }
             if (!LeJoueur.EstEnCollision(p))
             {
                 Flags.Combat = false;
                 //ÉtatJeu = ÉtatsJeu.JEU3D;
             }
         }
     }
     if (Game.Components.Contains(Projectile))
     {
         foreach (ObjetDeBase o in Game.Components.Where(r => r is ObjetDeBase))
         {
             if (!(o is Player))
             {
                 if (Projectile.EstEnCollision(o))
                 {
                     LeCombat.EssayerAttraperWildPokemon(LeJoueur, o.UnPokemon);
                     ÉtatJeu = ÉtatsJeu.JEU3D;
                 }
             }
         }
     }
 }
예제 #2
0
        private void RegarderLeNombreDePokemonAAjouter()
        {
            int cpt = 0;

            while (cpt < 6)
            {
                if (Database.LoadSauvegarde()[cpt + 3] == "Empty")
                {
                    cpt = 6;
                }
                else
                {
                    LeJoueur.AddPokemon(int.Parse(Database.LoadSauvegarde()[cpt + 3]), int.Parse(Database.LoadSauvegarde()[cpt + 4]));
                    cpt = cpt + 2;
                }
            }
        }
예제 #3
0
        //no entiendo porque la pokeball no desaparece cuando esta a bajo de menos diez


        private void GérerClavier()
        {
            if (GestionInput.EstNouvelleTouche(Keys.H) || GestionInput.EstNouveauSelect_heal())
            {
                LeJoueur.Heal();
                Game.Components.Add(new AfficheurTexte(Game, PositionBoxMessage, Cadre.LARGEUR_BOX_STANDARD, Cadre.HAUTEUR_BOX_STANDARD, "All Pokemon has been healed", INTERVALLE_MAJ_STANDARD));
            }

            if (GestionInput.EstNouvelleTouche(Keys.Enter) || GestionInput.EstNouveauStart_save())
            {
                if (!(ÉtatJeu == ÉtatsJeu.COMBAT))
                {
                    UploadSauvegarde();
                    foreach (TexteFixe t in Game.Components.Where(t => t is TexteFixe))
                    {
                        t.ÀDétruire = true;
                    }
                    Game.Components.Add(new AfficheurTexte(Game, PositionBoxMessage, Cadre.LARGEUR_BOX_STANDARD, Cadre.HAUTEUR_BOX_STANDARD, "Upload Sauvegarde", INTERVALLE_MAJ_STANDARD));
                }
            }
        }
예제 #4
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;
                //
            }
        }