Final-Bomber  0.1
Bomberman/Dynablaster remake in C# using XNA.
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Pages
Map.cs
Go to the documentation of this file.
1 using System.Collections.Generic;
2 using FBLibrary.Core;
3 using FBLibrary.Core.BaseEntities;
4 using FBClient.Core.Entities;
5 using Microsoft.Xna.Framework;
6 using Microsoft.Xna.Framework.Graphics;
7 using FBClient.TileEngine;
8 
9 namespace FBClient.WorldEngine
10 {
11  public class Map : BaseMap
12  {
13  #region Field Region
14 
15  // Textures
16  Texture2D _mapTexture;
17  Texture2D _wallTexture;
18 
19  private TileMap _tileMap;
20 
21  private readonly List<EdgeWall> _edgeWallList;
22  private readonly List<UnbreakableWall> _unbreakableWallList;
23  private List<Teleporter> _teleporterList;
24  private readonly List<Arrow> _arrowList;
25 
26  #endregion
27 
28  #region Property Region
29 
30  public TileMap TileMap
31  {
32  get { return _tileMap; }
33  }
34 
35  public List<Teleporter> TeleporterList
36  {
37  get { return _teleporterList; }
38  set { _teleporterList = value; }
39  }
40 
41  #endregion
42 
43  #region Constructor Region
44 
45  public Map()
46  {
47  _edgeWallList = new List<EdgeWall>();
48  _unbreakableWallList = new List<UnbreakableWall>();
49  _teleporterList = new List<Teleporter>();
50  _arrowList = new List<Arrow>();
51  }
52 
53  #endregion
54 
55  #region XNA Method Region
56 
57  public void LoadContent()
58  {
59  _wallTexture = FinalBomber.Instance.Content.Load<Texture2D>("Graphics/Characters/edgeWall");
60  _mapTexture = FinalBomber.Instance.Content.Load<Texture2D>("Graphics/Tilesets/tileset1");
61 
62  var tilesets = new List<Tileset>() { new Tileset(_mapTexture, 64, 32, 32, 32) };
63  var layer = new MapLayer(Size.X, Size.Y);
64  var mapLayers = new List<MapLayer> { layer };
65  _tileMap = new TileMap(tilesets, mapLayers);
66  }
67 
68  public void Update(GameTime gameTime)
69  {
70  }
71 
72  public void Draw(GameTime gameTime, SpriteBatch spriteBatch, Camera2D camera)
73  {
74  // Background
75  var position = new Vector2(
78 
79  for (int i = 0; i < (FinalBomber.Instance.GraphicsDevice.Viewport.Width / Engine.TileWidth) + 2; i++)
80  {
81  for (int j = 0; j < (FinalBomber.Instance.GraphicsDevice.Viewport.Height / Engine.TileHeight) + 2; j++)
82  {
83  if (!((position.X + i * Engine.TileWidth > Engine.Origin.X &&
84  position.X + i * Engine.TileWidth < Engine.Origin.X + Size.X * Engine.TileWidth - Engine.TileWidth) &&
85  (position.Y + j * Engine.TileHeight > Engine.Origin.Y &&
86  position.Y + j * Engine.TileHeight < Engine.Origin.Y + Size.Y * Engine.TileHeight - Engine.TileHeight)))
87  {
88  spriteBatch.Draw(_wallTexture, new Vector2(position.X + (i * Engine.TileWidth), position.Y + (j * Engine.TileHeight)), Color.White);
89  }
90  }
91  }
92 
93  if (_tileMap != null)
94  _tileMap.Draw(spriteBatch, camera, CollisionLayer);
95 
96  // Draw entities
97  foreach (var edgeWall in _edgeWallList)
98  edgeWall.Draw(gameTime);
99 
100  foreach (var unbreakableWall in _unbreakableWallList)
101  unbreakableWall.Draw(gameTime);
102 
103  foreach (var teleporter in TeleporterList)
104  teleporter.Draw(gameTime);
105 
106  foreach (var arrow in _arrowList)
107  arrow.Draw(gameTime);
108  }
109 
110  protected override void AddUnbreakableWall(Point position)
111  {
112  var unbreakableWall = new UnbreakableWall(position);
113  _unbreakableWallList.Add(unbreakableWall);
114 
115  base.AddUnbreakableWall(unbreakableWall);
116  }
117 
118  protected override void AddEdgeWall(Point position)
119  {
120  var edgeWall = new EdgeWall(position);
121  _edgeWallList.Add(edgeWall);
122 
123  base.AddEdgeWall(edgeWall);
124  }
125 
126  #endregion
127  }
128 }
void Update(GameTime gameTime)
Definition: Map.cs:68
void LoadContent()
Definition: Map.cs:57
static Vector2 Origin
Definition: Engine.cs:75
override void AddEdgeWall(Point position)
Definition: Map.cs:118
static int TileWidth
Definition: Engine.cs:65
override void AddUnbreakableWall(Point position)
Definition: Map.cs:110
void Draw(GameTime gameTime, SpriteBatch spriteBatch, Camera2D camera)
Definition: Map.cs:72
static int TileHeight
Definition: Engine.cs:70