/// <summary> /// Initializes a new instance of the <see cref="Tileset" /> class. /// </summary> /// <param name="tmxTileset">The TMX parsed tileset</param> /// <param name="tiledMap">The tiled map</param> public Tileset(TmxTileset tmxTileset, TiledMap tiledMap) { this.tiledMap = tiledMap; this.Name = tmxTileset.Name; this.TileWidth = tmxTileset.TileWidth; this.TileHeight = tmxTileset.TileHeight; this.Spacing = tmxTileset.Spacing; this.Margin = tmxTileset.Margin; this.XTilesCount = (int)(tmxTileset.Image.Width - (2 * this.Margin) + this.Spacing) / (this.TileWidth + this.Spacing); this.YTilesCount = (int)(tmxTileset.Image.Height - (2 * this.Margin) + this.Spacing) / (this.TileHeight + this.Spacing); this.FirstGid = tmxTileset.FirstGid; this.LastGid = tmxTileset.FirstGid + (this.XTilesCount * this.YTilesCount) - 1; this.terrains = new Dictionary<string, TilesetTerrain>(); this.Terrains = new ReadOnlyDictionary<string, TilesetTerrain>(this.terrains); foreach (var tmxTerrain in tmxTileset.Terrains) { this.terrains.Add(tmxTerrain.Name, new TilesetTerrain(tmxTerrain)); } this.tiles = new List<TilesetTile>(); this.TilesTable = new TilesetTile[this.XTilesCount * this.YTilesCount]; foreach (var tmxTilesetTile in tmxTileset.Tiles) { var tilesetTile = new TilesetTile(tmxTilesetTile, this); this.tiles.Add(tilesetTile); this.TilesTable[tilesetTile.ID] = tilesetTile; } this.Image = this.tiledMap.Owner.Scene.Assets.LoadAsset<Texture2D>(tmxTileset.Image.Source); }
protected override void CreateScene() { this.Load(@"Content/Scenes/MainScene.wscene"); var map = EntityManager.Find("Map"); map.AddComponent(this.tiledMap = new TiledMap("Content/Assets/hexagonalMap.tmx") { MinLayerDrawOrder = -10, MaxLayerDrawOrder = -0 }) .AddComponent(new PlayerControllerBehavior()) .RefreshDependencies(); var player = EntityManager.Find("Player"); map.FindComponent<PlayerControllerBehavior>().TileSelected += (s, tile) => { var pathFollower = player.FindComponent<PathFollowerBehavior>(); pathFollower.MoveToTile(tile); }; #if DEBUG this.AddSceneBehavior(new DebugSceneBehavior(), SceneBehavior.Order.PostUpdate); #endif }
protected override void Start() { base.Start(); this.tiledMap = this.EntityManager.Find("Map").FindComponent <WaveEngine.TiledMap.TiledMap>(); this.AddCoins(); this.AddCrates(); this.AddTraps(); this.AddSceneColliders(); this.AddEnd(); this.StartMusic(); this.AddSceneBehavior(new GameplaySceneBehavior(), SceneBehavior.Order.PostUpdate); }
protected override void Start() { base.Start(); this.tiledMap = this.EntityManager.Find("Map").FindComponent<WaveEngine.TiledMap.TiledMap>(); this.AddCoins(); this.AddCrates(); this.AddTraps(); this.AddSceneColliders(); this.AddEnd(); this.StartMusic(); this.AddSceneBehavior(new GameplaySceneBehavior(), SceneBehavior.Order.PostUpdate); }
/// <summary> /// Initializes a new instance of the <see cref="Tileset" /> class. /// </summary> /// <param name="tmxTileset">The TMX parsed tileset</param> /// <param name="tiledMap">The tiled map</param> public Tileset(TmxTileset tmxTileset, TiledMap tiledMap) { this.tiledMap = tiledMap; this.Name = tmxTileset.Name; this.TileWidth = tmxTileset.TileWidth; this.TileHeight = tmxTileset.TileHeight; this.Spacing = tmxTileset.Spacing; this.Margin = tmxTileset.Margin; this.XTilesCount = (int)(tmxTileset.Image.Width - (2 * this.Margin) + this.Spacing) / (this.TileWidth + this.Spacing); this.YTilesCount = (int)(tmxTileset.Image.Height - (2 * this.Margin) + this.Spacing) / (this.TileHeight + this.Spacing); this.XDrawingOffset = (int)tmxTileset.TileOffset.X; this.YDrawingOffset = (int)tmxTileset.TileOffset.Y; if (tmxTileset.Colums.HasValue) { this.Colums = tmxTileset.Colums.Value; } this.FirstGid = tmxTileset.FirstGid; this.LastGid = tmxTileset.FirstGid + (this.XTilesCount * this.YTilesCount) - 1; this.terrains = new Dictionary <string, TilesetTerrain>(); this.Terrains = new ReadOnlyDictionary <string, TilesetTerrain>(this.terrains); foreach (var tmxTerrain in tmxTileset.Terrains) { this.terrains.Add(tmxTerrain.Name, new TilesetTerrain(tmxTerrain)); } this.tiles = new List <TilesetTile>(); this.TilesTable = new TilesetTile[this.XTilesCount * this.YTilesCount]; foreach (var tmxTilesetTile in tmxTileset.Tiles) { var tilesetTile = new TilesetTile(tmxTilesetTile, this); this.tiles.Add(tilesetTile); this.TilesTable[tilesetTile.ID] = tilesetTile; } string fullPath = tmxTileset.Image.Source; string relativePath = fullPath.Substring(fullPath.IndexOf("Content")); this.Image = this.tiledMap.Owner.Scene.Assets.LoadAsset <Texture2D>(relativePath); }
/// <summary> /// Initializes a new instance of the <see cref="Tileset" /> class. /// </summary> /// <param name="tmxTileset">The TMX parsed tileset</param> /// <param name="tiledMap">The tiled map</param> public Tileset(TmxTileset tmxTileset, TiledMap tiledMap) { this.tiledMap = tiledMap; this.Name = tmxTileset.Name; this.TileWidth = tmxTileset.TileWidth; this.TileHeight = tmxTileset.TileHeight; this.Spacing = tmxTileset.Spacing; this.Margin = tmxTileset.Margin; this.XTilesCount = (int)(tmxTileset.Image.Width - (2 * this.Margin) + this.Spacing) / (this.TileWidth + this.Spacing); this.YTilesCount = (int)(tmxTileset.Image.Height - (2 * this.Margin) + this.Spacing) / (this.TileHeight + this.Spacing); this.XDrawingOffset = (int)tmxTileset.TileOffset.X; this.YDrawingOffset = (int)tmxTileset.TileOffset.Y; if (tmxTileset.Colums.HasValue) { this.Colums = tmxTileset.Colums.Value; } this.FirstGid = tmxTileset.FirstGid; this.LastGid = tmxTileset.FirstGid + (this.XTilesCount * this.YTilesCount) - 1; this.terrains = new Dictionary<string, TilesetTerrain>(); this.Terrains = new ReadOnlyDictionary<string, TilesetTerrain>(this.terrains); foreach (var tmxTerrain in tmxTileset.Terrains) { this.terrains.Add(tmxTerrain.Name, new TilesetTerrain(tmxTerrain)); } this.tiles = new List<TilesetTile>(); this.TilesTable = new TilesetTile[this.XTilesCount * this.YTilesCount]; foreach (var tmxTilesetTile in tmxTileset.Tiles) { var tilesetTile = new TilesetTile(tmxTilesetTile, this); this.tiles.Add(tilesetTile); this.TilesTable[tilesetTile.ID] = tilesetTile; } string fullPath = tmxTileset.Image.Source; string relativePath = fullPath.Substring(fullPath.IndexOf("Content")); this.Image = this.tiledMap.Owner.Scene.Assets.LoadAsset<Texture2D>(relativePath); }
/// <summary> /// Initializes the layer renderer /// </summary> protected override void Initialize() { base.Initialize(); this.tiledMap = this.tiledMapLayer.TiledMap; }
/// <summary> /// Initializes the layer renderer /// </summary> protected override void Initialize() { base.Initialize(); this.tiledMap = this.Owner.Parent.FindComponent <TiledMap>(); }
/// <summary> /// Initializes this component /// </summary> protected override void Initialize() { base.Initialize(); this.tiledMap = this.Owner.Parent.FindComponent<TiledMap>(); this.tileTable = new LayerTile[this.tiledMap.Width, this.tiledMap.Height]; for (int i = 0; i < this.tmxLayer.Tiles.Count; i++) { var tmxTile = this.tmxLayer.Tiles[i]; Tileset selectedTileset = null; if (tmxTile.Gid > 0) { foreach (var tileset in this.tiledMap.Tilesets) { if (tmxTile.Gid <= tileset.LastGid) { selectedTileset = tileset; break; } } } LayerTile tile = new LayerTile(tmxTile, selectedTileset); this.tiles.Add(tile); int x = i % this.tiledMap.Width; int y = i / this.tiledMap.Width; this.tileTable[x, y] = tile; } }
/// <summary> /// Initializes the layer renderer /// </summary> protected override void Initialize() { base.Initialize(); this.tiledMap = this.Owner.Parent.FindComponent<TiledMap>(); }
/// <summary> /// Unload layer /// </summary> private void UnloadLayer() { this.tiledMap = null; this.tileTable = null; this.tiles = null; this.tmxLayer = null; this.isLayerLoaded = false; }
/// <summary> /// Initialize Layer /// </summary> private void LoadLayer() { this.tiles = new List<LayerTile>(); if(this.Owner.Parent == null) { return; } this.tiledMap = this.Owner.Parent.FindComponent<TiledMap>(); if (this.tiledMap != null && this.tiledMap.TmxMap != null) { this.tmxLayer = this.tiledMap.TmxMap.Layers.FirstOrDefault(l => l.Name == this.tmxLayerName); if (this.tmxLayer != null) { this.tileTable = new LayerTile[this.tiledMap.Width, this.tiledMap.Height]; for (int i = 0; i < this.tmxLayer.Tiles.Count; i++) { var tmxTile = this.tmxLayer.Tiles[i]; Tileset selectedTileset = null; if (tmxTile.Gid > 0) { foreach (var tileset in this.tiledMap.Tilesets) { if (tmxTile.Gid <= tileset.LastGid) { selectedTileset = tileset; break; } } } LayerTile tile = new LayerTile(tmxTile, selectedTileset); this.tiles.Add(tile); Vector2 tileLocalPosition; this.tiledMap.GetTilePosition(tile.X, tile.Y, selectedTileset, out tileLocalPosition); tile.LocalPosition = tileLocalPosition; int x = i % this.tiledMap.Width; int y = i / this.tiledMap.Width; this.tileTable[x, y] = tile; } this.isLayerLoaded = true; this.NeedRefresh = true; } } }
public PathFollowerBehavior(TiledMap tiledMap) { this.tiledMap = tiledMap; this.pathToFollow = new List<LayerTile>(); }
private void CreateTiledMap() { var map = new Entity("map") .AddComponent(new Transform2D()) .AddComponent(this.tiledMap = new TiledMap("Content/map.tmx") { MinLayerDrawOrder = -10, MaxLayerDrawOrder = -0 }); this.EntityManager.Add(map); }
/// <summary> /// Initializes the layer renderer /// </summary> protected override void Initialize() { base.Initialize(); this.tiledMap = this.tiledMapLayer.TiledMap; }