Esempio n. 1
0
        protected override void LoadContent()
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);
            spriteSheet = Content.Load <Texture2D>("spriteSheet");
            spriteFont  = Content.Load <SpriteFont>("spriteFont");
            textures.Add(Content.Load <Texture2D>("explosion"));                          //har den seperat så att jag kan lägga in den i particleEngine (Ett krav att man skulle ha med en sådan)
            particleEngine = new ParticleEngine(textures, new Vector2(1000000, 1000000)); //Följ tutorian för detta, skrev bara rakt av från den och ändrade några värden på slutet
            towerM         = new TowerManager(spriteSheet);
            path           = new SimplePath(graphics.GraphicsDevice);
            path.Clean();                       //Spline sak, gör så att du inte har en spiral i mitten
            gameState     = GameState.MainMenu; //Tänkt att den skulle börja om när man var klar men spline gjorde så att jag inte kunde börja om... men att börja om var inte krav, bara att det skulle avslutas när x antal waves var klara eller hp <= 0
            HPText        = "HP: " + HP;
            coinsText     = "";
            activeSplineX = 75; //startvärdet, behövs ritas ut av någon anledning, man kan lösa detta med att i Spline ha roadRectList.Count <= 1 istället för roadRectList.Any() men orkade inte bry mig
            activeSplineY = 125;
            coins         = 100;
            HP            = 100;

            grassPosList = GetPos('-', currentLevel); //Ritar ut gräs på alla rutor som har värdet '-' kolla text filen för att se det
            foreach (Vector2 pos in grassPosList)
            {
                grassO = new GrassObject(spriteSheet, pos);
                gameList.Add(grassO);
            }

            roadPosList = GetPos('r', currentLevel);
            foreach (Vector2 pos in roadPosList)
            {
                roadO = new RoadObject(spriteSheet, pos);
                gameList.Add(roadO);
                roadRect = new Rectangle((int)pos.X + 25, (int)pos.Y + 25, 50, 50);
                roadRectList.Add(roadRect); //La in det i en seperat lista för att kunna ha det som en counter samt se till att ingen roadRect missades vid spline ritningen
            }

            towerHUDList = GetPos(' ', currentLevel);
            foreach (Vector2 pos in towerHUDList)
            {
                towerM.TowerHUD(pos);
            }
            Spline(); //Tar er till min spline algoritm!
            waveM = new WaveManager(spriteSheet, this, towerM);
        }
Esempio n. 2
0
        public void Update(GameTime gameTime, Vector2 newPos, Game1 game, WaveManager waveM, TowerManager towerM)
        {
            pos            = newPos;
            posSpeed      += speed; //Magi som gör så att den rör sig via spline...
            enemyRectPos.X = (int)pos.X - 25;
            enemyRectPos.Y = (int)pos.Y - 20;

            towerM.enemyPos(pos); //skrickar pos till towerM som sen skickar den till towerO för att se om de är i range

            if (enemyRectPos.Contains(endPos))
            {
                game.TakeDamage(damage);
                waveM.KillEnemy();
            }
            if (hp <= 0)
            {
                game.coins += 10 - 5 * ID; //Får pengar när man dödar en fiende
                waveM.KillEnemy();
            }
        }