Пример #1
0
        public Level(SpriteBatch SpriteBatch, ContentManager MyContent, int levelNum)
        {
            spriteBatch = SpriteBatch;
            myContent = MyContent;

            mapTileSheet = myContent.Load<Texture2D>("graphics\\GameScreen\\maptiles");
            mobileTiles = myContent.Load<Texture2D>("graphics\\GameScreen\\bigmobileTiles");
            consumableTiles = myContent.Load<Texture2D>("graphics\\GameScreen\\consumabletiles");

            thePlayer = new PlayerMob(myContent, SpriteBatch);
            enemyMobileList = new List<Mobile>();
            enemyMobileList.Add(new EnemyMob(myContent, SpriteBatch, new Vector2(1, 1),1, enemyMoveBehaviors.random));
            enemyMobileList.Add(new EnemyMob(myContent, SpriteBatch, new Vector2(28, 1), 2, enemyMoveBehaviors.random));
            enemyMobileList.Add(new EnemyMob(myContent, SpriteBatch, new Vector2(1, 9), 3, enemyMoveBehaviors.random));
            enemyMobileList.Add(new EnemyMob(myContent, SpriteBatch, new Vector2(28, 9), 4, enemyMoveBehaviors.random));
            levelFinished = false;

            myLevelNum = levelNum;

            gameOver = false;
        }
Пример #2
0
        charDirs CanEnemySeePlayer(Mobile theEnemy, PlayerMob thePlayer)
        {
            int PlayerX = (int)thePlayer.gridPosition.X;
            int PlayerY = (int)thePlayer.gridPosition.Y;
            int EnemyX = (int)theEnemy.gridPosition.X;
            int EnemyY = (int)theEnemy.gridPosition.Y;

            if(EnemyX == PlayerX)
            {
                int lowY, highY;
                charDirs sightDir = charDirs.None;

                if (EnemyY > PlayerY)
                {
                    lowY = PlayerY;
                    highY = EnemyY;
                    sightDir = charDirs.Down;
                }
                else
                {
                    lowY = EnemyY;
                    highY = PlayerY;
                    sightDir = charDirs.Up;
                }
                for (int i = lowY + 1; i < highY; i++)
                {
                    if (levelMap[i, PlayerX] <= (int)mapTilesIDs.EMPTY) return charDirs.None;
                }
                return sightDir;
            }
            if (PlayerY == EnemyY)
            {
                int lowX, highX;
                charDirs sightDir = charDirs.None;

                if (EnemyX > PlayerX)
                {
                    lowX = PlayerX;
                    highX = EnemyX;
                    sightDir = charDirs.Left;
                }
                else
                {
                    lowX = EnemyX;
                    highX = PlayerX;
                    sightDir = charDirs.Right;
                }
                for (int i = lowX + 1; i < highX; i++)
                {
                    if (levelMap[PlayerY, i] <= (int)mapTilesIDs.EMPTY) return charDirs.None;
                }
                return sightDir;
            }
            return charDirs.None;
        }