diff options
Diffstat (limited to 'Penguloon/Levels/Map.cs')
| -rw-r--r-- | Penguloon/Levels/Map.cs | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/Penguloon/Levels/Map.cs b/Penguloon/Levels/Map.cs index 19fd7c0..2ffcea0 100644 --- a/Penguloon/Levels/Map.cs +++ b/Penguloon/Levels/Map.cs @@ -4,6 +4,7 @@ using Penguloon.Enemies; using Penguloon.Scenes; using System.Collections.Generic; using System; +using Penguloon.Objects; namespace Penguloon.Levels { @@ -21,6 +22,7 @@ namespace Penguloon.Levels public SceneBase ParentScene { get; set; } public List<EnemyBase> Enemies { get; set; } = new List<EnemyBase>(); + public List<ObjectBase> Objects { get; set; } = new List<ObjectBase>(); public Vector2 SpawnPoint { get; set; } public Vector2 SpawnPointTargetPos { get; set; } @@ -28,9 +30,12 @@ namespace Penguloon.Levels public WaveManager WaveManager { get; set; } - public Map(SceneBase parentScene) + public LevelBase Level { get; set; } + + public Map(SceneBase parentScene, LevelBase level) { this.ParentScene = parentScene; + this.Level = level; MapWidth = (int)(StaticUIValues.ScreenViewport.X - StaticUIValues.IngameUIWidth); MapHeight = (int)(StaticUIValues.ScreenViewport.Y); @@ -45,7 +50,7 @@ namespace Penguloon.Levels public void Draw(float deltaTime) { - for(int y = 0; y < TileMap.GetLength(0); y++) + for (int y = 0; y < TileMap.GetLength(0); y++) { for (int x = 0; x < TileMap.GetLength(1); x++) { @@ -60,14 +65,26 @@ namespace Penguloon.Levels { if (Enemies[i].Texture != null) ParentScene.Main.SpriteBatch.Draw(Enemies[i].Texture, - destinationRectangle: new Rectangle((int)Enemies[i].Position.X, (int)Enemies[i].Position.Y, TileWidth, TileHeight)); + destinationRectangle: Enemies[i].Box); + } + + for (int i = 0; i < Objects.Count; i++) + { + Objects[i].Draw(deltaTime); } } public void Update(float deltaTime) { for (int i = 0; i < Enemies.Count; i++) + { Enemies[i].Update(deltaTime); + } + + for (int i = 0; i < Objects.Count; i++) + { + Objects[i].Update(deltaTime); + } CheckIfRoundCompleted(); } |
