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; }
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; }