public TerrainManager(RPG jeu, ScèneDeJeu scèneJeu, int nbZones, Vector2 étendue, string[] nomstextures, FogData[] fogs, Texture2D heightMap, List<string> listNomMusic) : base(jeu) { Jeu = jeu; ScèneJeu = scèneJeu; NbZones = nbZones; Étendue = étendue; Fogs = fogs; ListNomMusic = listNomMusic; NomsTextures = nomstextures; Color[] couleursHeightMap = new Color[heightMap.Width * heightMap.Height]; heightMap.GetData(couleursHeightMap); HeightMap = new float[heightMap.Width, heightMap.Height]; HauteurMax = 0; HauteurMin = 256 * ÉCHELLE_HAUTEUR; for (int i = 0; i < heightMap.Width; ++i) { for (int j = 0; j < heightMap.Height; ++j) { HeightMap[i, heightMap.Height - 1 - j] = couleursHeightMap[i + j * heightMap.Width].R * ÉCHELLE_HAUTEUR; HauteurMax = Math.Max(HeightMap[i, heightMap.Height - 1 - j], HauteurMax); HauteurMin = Math.Min(HeightMap[i, heightMap.Height - 1 - j], HauteurMin); } } ListeTerrains = new Terrain[NbZones]; for (int i = 0; i < NbZones; ++i) { ListeTerrains[i] = new Terrain(Jeu, ScèneJeu, new Vector3(0, 0, (-1) * i * Étendue.Y), Étendue, new Vector2(heightMap.Width - 1, (heightMap.Height - 1) / NbZones), NomsTextures[i], Fogs[i], HeightMap, i * ((heightMap.Height) / NbZones), ListNomMusic[i]); ListeTerrains[i].Initialize(); } }
public GestionnaireEnnemis(Game jeu, Joueur cible, Terrain terrainJeu, int nbEnnemis, float échelleAI, float intervalleMAJ) :base(jeu) { ListeEnnemis = new List<AI>(); Cible = cible; TerrainJeu = terrainJeu; NbEnnemis = nbEnnemis; ÉchelleAI = échelleAI; IntervalleMAJ = intervalleMAJ; }
void InitializeComponents() { GestionInput = new InputManager(Game); CaméraJoueur = new CaméraSubjective(Game, new Vector3(positionObjet.X, positionObjet.Y + HAUTEUR_CAM_DÉFAULT, positionObjet.Z + DISTANCE_POURSUITE), new Vector3(positionObjet.X, positionObjet.Y + 4, positionObjet.Z), Vector3.Up, INTERVALLE_MAJ_STANDARD); Game.Components.Add(CaméraJoueur); TerrainJeu = new Terrain(Game, 1f, Vector3.Zero, Vector3.Zero, new Vector3(256, 25, 256), "PetiteCarte", "DétailsDésert", 3, INTERVALLE_MAJ_STANDARD); Utilisateur = new Joueur(Game, NomModèleJoueur, ÉCHELLE_OBJET, rotationObjet, positionObjet, INTERVALLE_MAJ_STANDARD); if (Game.Services.GetService(typeof(Joueur)) == null) { Game.Services.AddService(typeof(Joueur), Utilisateur); } GestionEnnemis = new GestionnaireEnnemis(Game, Utilisateur, TerrainJeu, NbEnnemis, ÉCHELLE_OBJET, INTERVALLE_MAJ_STANDARD); MenuPause = new MenuPause(Game, ListeGameComponentsMenu, ListeGameComponents, GestionEnnemis); PremierPlan = new PlanTexturé(Game, 1f, Vector3.Zero, new Vector3(0, 6, -126), new Vector2(256, 60), new Vector2(10, 10), "desertDunes", INTERVALLE_MAJ_STANDARD); DeuxièmePlan = new PlanTexturé(Game, 1f, new Vector3(0, MathHelper.PiOver2, 0), new Vector3(-126, 6, 0), new Vector2(256, 60), new Vector2(10, 10), "desertDunesRéflexion", INTERVALLE_MAJ_STANDARD); TroisièmePlan = new PlanTexturé(Game, 1f, new Vector3(0, -(MathHelper.PiOver2), 0), new Vector3(126, 6, 0), new Vector2(256, 60), new Vector2(10, 10), "desertDunesRéflexion", INTERVALLE_MAJ_STANDARD); QuatrièmePlan = new PlanTexturé(Game, 1f, new Vector3(0, MathHelper.Pi, 0), new Vector3(0, 6, 126), new Vector2(256, 60), new Vector2(10, 10), "desertDunes", INTERVALLE_MAJ_STANDARD); Ciel = new PlanTexturé(Game, 1f, new Vector3(MathHelper.PiOver2, 0, 0), new Vector3(0, 35, 0), new Vector2(256, 256), new Vector2(10, 10), "ciel", INTERVALLE_MAJ_STANDARD); }