public void ShouldDetermingTopLeftCorner() { var wild = TileMask.wild; var open = TileMask.open; var blck = TileMask.blck; var theGrid = new byte[, ] { { open, open, open }, { open, blck, blck }, { open, blck, blck } }; var level = new Level(3, 3); for (var y = 0; y < theGrid.GetLength(0); y++) { for (var x = 0; x < theGrid.GetLength(1); x++) { level[x, y] = theGrid[y, x]; } } var theMask = new byte?[, ] { { wild, open, open }, { open, blck, blck }, { wild, blck, blck } }; LevelTiler.SurroundingAreaMatchesPattern(level, new Point(1, 1), theMask).Should().Be(true); }
public void LoadLevel(string levelName) { LoadContent(); Tile = new LevelTiler(); levelData = Engine.Instance.Content.Load <LevelData>(levelName); Tile.LoadContent(levelData); collisionInfoSolid = LevelTiler.TileConverison(Tile.CollisionLayer, 2); tilesSolid = new LevelTilesSolid(collisionInfoSolid); this.Add(tilesSolid); spawnPoints = LevelTiler.TileConverison(Tile.CollisionLayer, 3); SpawnPointAssignment(); collisionInfoEmpty = LevelTiler.TileConverison(Tile.CollisionLayer, 0); tilesEmpty = new LevelTilesEmpty(collisionInfoEmpty); this.Add(tilesEmpty); playerOne = new Player(Tile.PlayerPosition[0], PlayerIndex.One); this.Add(playerOne); playerOne.Added(this); playerTwo = new Player(Tile.PlayerPosition[1], PlayerIndex.Two); this.Add(playerTwo); playerTwo.Added(this); Camera = new GraveCamera(); }
public override void LoadContent() { base.LoadContent(); levelData = Engine.Instance.Content.Load <LevelData>("TestMap"); tile.LoadContent(levelData); bool[,] collisionInfo = LevelTiler.TileConverison(tile.CollisionLayer, 513); tiles = new LevelTiles(collisionInfo); this.Add(tiles); player = new Player(tile.PlayerPosition[0]); this.Add(player); player.Added(this); initalizeMusic(); }
public override void LoadContent() { base.LoadContent(); Tile = new LevelTiler(); levelData = LevelData.Load("Content/testMap.json"); Tile.LoadContent(levelData); collisionInfo = LevelTiler.TileConverison(Tile.CollisionLayer, 2); tiles = new LevelTilesSolid(collisionInfo); this.Add(tiles); player = new Player(Tile.PlayerPosition[0]); this.Add(player); player.Added(this); }
public override void LoadContent() { base.LoadContent(); Tile = new LevelTiler(); levelData = Engine.Instance.Content.Load <LevelData>("Map"); Tile.LoadContent(levelData); collisionInfo = LevelTiler.TileConverison(Tile.CollisionLayer, 2); tiles = new LevelTilesSolid(collisionInfo); this.Add(tiles); player = new Player(new Vector2(200, 200)); this.Add(player); player.Added(this); }
public void LoadLevel(string levelName) { LoadContent(); Tile = new LevelTiler(); levelData = Engine.Instance.Content.Load <LevelData>(levelName); Tile.LoadContent(levelData); collisionInfoSolid = LevelTiler.TileConverison(Tile.CollisionLayer, 2); tilesSolid = new LevelTilesSolid(collisionInfoSolid); this.Add(tilesSolid); collisionInfoEmpty = LevelTiler.TileConverison(Tile.CollisionLayer, 0); tilesEmpty = new LevelTilesEmpty(collisionInfoEmpty); this.Add(tilesEmpty); player = new Player(Tile.PlayerPosition[0]); this.Add(player); player.Added(this); }
public override void LoadContent() { base.LoadContent(); Tile = new LevelTiler(); hitboxData = Engine.Instance.Content.Load <HitboxData>("SOMETHING"); levelData = Engine.Instance.Content.Load <LevelData>("level"); Tile.LoadContent(levelData); collisionInfoSolid = LevelTiler.TileConverison(Tile.CollisionLayer, 2); tilesSolid = new LevelTilesSolid(collisionInfoSolid); this.Add(tilesSolid); collisionInfoEmpty = LevelTiler.TileConverison(Tile.CollisionLayer, 0); tilesEmpty = new LevelTilesEmpty(collisionInfoEmpty); this.Add(tilesEmpty); player = new Player(new Vector2(100, 100)); this.Add(player); player.Added(this); }
public override void LoadContent() { base.LoadContent(); levelData = Engine.Instance.Content.Load <LevelData>("Arena"); tile.LoadContent(levelData); bool[,] collisionInfo = LevelTiler.TileConverison(tile.CollisionLayer, 65); tiles = new LevelTiles(collisionInfo); this.Add(tiles); for (int i = 0; i < tile.PlayerPosition.Count; i++) { if (i == 0) { players.Add(new Player1(tile.PlayerPosition[i], i, Color.Blue, GameTags.Player1, new Vector2(tile.MapWidthInPixels, tile.MapHeightInPixels))); } if (i == 1) { players.Add(new Player2(tile.PlayerPosition[i], i, Color.Green, GameTags.Player2, new Vector2(tile.MapWidthInPixels, tile.MapHeightInPixels))); } } this.HelperEntity.Add(counters); this.Add(players); foreach (var player in players) { player.Added(this); } initalizeMusic(); }
public override void Update(float dt) { base.Update(dt); if (!did && Triggered) { Camera.Instance.Shake(0.5f); t += dt; if (t >= 1f) { did = true; var r = (int)Math.Ceiling(Math.Sqrt((RoomWidth + 1) * (RoomWidth + 1) + (RoomHeight + 1) * (RoomHeight + 1))); Camera.Instance.Targets.Clear(); Camera.Instance.Follow(this, 3f); Tween.To(0.5f, Camera.Instance.Zoom, x => Camera.Instance.Zoom = x, 0.3f); for (var j = 1; j < r; j++) { var level = Run.Level; var j1 = j; Timer.Add(() => { if (Interrupted) { level.CreateBody(); return; } for (var y = 0; y < RoomHeight; y++) { for (var x = 0; x < RoomWidth; x++) { var dx = x - RoomWidth / 2f; var dy = y - RoomHeight / 2f; if (Math.Sqrt(dx * dx + dy * dy) > j1) { continue; } var i = x + y * RoomWidth; if (Tiles[i] == 255) { continue; } var li = level.ToIndex(RoomX + x, RoomY + y); if (level.Get(li).IsWall()) { level.Variants[li] = 0; } // tmp Area.Add(new TileFx { X = (RoomX + x) * 16, Y = (RoomY + y) * 16 - 8 }); level.ReCreateBodyChunk(RoomX + x, RoomY + y); level.Tiles[li] = Tiles[i]; level.Liquid[li] = Liquid[i]; Tiles[i] = 255; // Mark as already checked; } } for (var y = -1; y < RoomHeight + 1; y++) { for (var x = -1; x < RoomWidth + 1; x++) { LevelTiler.TileUp(level, level.ToIndex(RoomX + x, RoomY + y)); } } Camera.Instance.Shake(2); }, j * 0.05f); } Timer.Add(() => { if (Interrupted) { return; } Tween.To(1f, Camera.Instance.Zoom, x => Camera.Instance.Zoom = x, 0.3f); Timer.Add(() => { if (Interrupted) { return; } Done = true; ReadyToSpawn = true; }, 1f); }, r * 0.05f + 1f); } } }
public void LoadLevel(string levelName) { LoadContent(); levelData = Engine.Instance.Content.Load <LevelData>(levelName); tile.LoadContent(levelData); collisionInfoSolid = LevelTiler.TileConverison(tile.CollisionLayer, 73); tilesSolid = new LevelTilesSolid(collisionInfoSolid); this.Add(tilesSolid); collisionInfoEmpty = LevelTiler.TileConverison(tile.CollisionLayer, 0); tilesEmpty = new LevelTilesEmpty(collisionInfoEmpty); this.Add(tilesEmpty); foreach (var entity in tile.Entites) { if (entity.Type == "GravityBox") { GravityBox = new GravityBoxMediumCombo(entity.Position); GravityItemList.Add(GravityBox); this.Add(GravityBox); GravityBox.Added(this); } if (entity.Type == "GravityBoxLeftRight") { GravityBoxLeftRight = new GravityBoxMediumLeftRight(entity.Position); GravityItemList.Add(GravityBoxLeftRight); this.Add(GravityBoxLeftRight); GravityBoxLeftRight.Added(this); } if (entity.Type == "GravityBoxUpDown") { GravityBoxUpDown = new GravityBoxMediumUpDown(entity.Position); GravityItemList.Add(GravityBoxUpDown); this.Add(GravityBoxUpDown); GravityBoxUpDown.Added(this); } if (entity.Type == "GravityBoxSmall") { GravityBoxSmall = new GravityBoxSmallCombo(entity.Position); GravityItemList.Add(GravityBoxSmall); this.Add(GravityBoxSmall); GravityBoxSmall.Added(this); } if (entity.Type == "GravityBoxSmallLeftRight") { GravityBoxSmallLeftRight = new GravityBoxSmallLeftRight(entity.Position); GravityItemList.Add(GravityBoxSmallLeftRight); this.Add(GravityBoxSmallLeftRight); GravityBoxSmallLeftRight.Added(this); } if (entity.Type == "GravityBoxSmallUpDown") { GravityBoxSmallUpDown = new GravityBoxSmallUpDown(entity.Position); GravityItemList.Add(GravityBoxSmallUpDown); this.Add(GravityBoxSmallUpDown); GravityBoxSmallUpDown.Added(this); } if (entity.Type == "Enemy") { if (entity.Properties.Count > 0) { EnemyMoveDirection direction = EnemyMoveDirection.Right; int distance = 100; foreach (var item in entity.Properties) { if (item.Key == "Direction") { if (item.Value == "Right") { direction = EnemyMoveDirection.Right; } else if (item.Value == "Left") { direction = EnemyMoveDirection.Left; } } else if (item.Key == "Distance") { distance = int.Parse(item.Value); } } Enemy = new EnemyCombo(entity.Position, distance, direction); GravityItemList.Add(Enemy); this.Add(Enemy); Enemy.Added(this); } else { Enemy = new EnemyCombo(entity.Position); GravityItemList.Add(Enemy); this.Add(Enemy); Enemy.Added(this); } } if (entity.Type == "EnemyUpDown") { if (entity.Properties.Count > 0) { EnemyMoveDirection direction = EnemyMoveDirection.Right; int distance = 100; foreach (var item in entity.Properties) { if (item.Key == "Direction") { if (item.Value == "Right") { direction = EnemyMoveDirection.Right; } else if (item.Value == "Left") { direction = EnemyMoveDirection.Left; } } else if (item.Key == "Distance") { distance = int.Parse(item.Value); } } EnemyUpDown = new EnemyUpDown(entity.Position, distance, direction); GravityItemList.Add(EnemyUpDown); this.Add(EnemyUpDown); EnemyUpDown.Added(this); } else { EnemyUpDown = new EnemyUpDown(entity.Position); GravityItemList.Add(EnemyUpDown); this.Add(EnemyUpDown); EnemyUpDown.Added(this); } } if (entity.Type == "EnemyLeftRight") { if (entity.Properties.Count > 0) { EnemyMoveDirection direction = EnemyMoveDirection.Right; int distance = 100; foreach (var item in entity.Properties) { if (item.Key == "Direction") { if (item.Value == "Right") { direction = EnemyMoveDirection.Right; } else if (item.Value == "Left") { direction = EnemyMoveDirection.Left; } } else if (item.Key == "Distance") { distance = int.Parse(item.Value); } } EnemyLeftRight = new EnemyLeftRight(entity.Position, distance, direction); GravityItemList.Add(EnemyLeftRight); this.Add(EnemyLeftRight); EnemyLeftRight.Added(this); } else { EnemyLeftRight = new EnemyLeftRight(entity.Position); GravityItemList.Add(EnemyLeftRight); this.Add(EnemyLeftRight); EnemyLeftRight.Added(this); } } if (entity.Type == "Checkpoint") { Checkpoint checkpoint = new Checkpoint(entity.Position); this.Add(checkpoint); checkpoint.Added(this); Checkpoints.Add(checkpoint); } if (entity.Type == "Exit") { Exit = new Exit(entity.Position); this.Add(Exit); Exit.Added(this); } if (entity.Type == "NextLevel") { NextLevel = entity.Name; } } if (CurrentPlayerPosition == Vector2.Zero) { player = new Player(tile.PlayerPosition[0]); } else { player = new Player(CurrentPlayerPosition); } this.Add(player); player.Added(this); }
public override void LoadContent() { base.LoadContent(); Tile = new LevelTiler(); levelData = Engine.Instance.Content.Load <LevelData>("TestLevel"); Tile.LoadContent(levelData); collisionInfo = LevelTiler.TileConverison(Tile.CollisionLayer, 2); tiles = new LevelTilesSolid(collisionInfo); this.Add(tiles); stopPointsInfo = LevelTiler.TileConverison(Tile.CollisionLayer, 4); stopPoints = new LevelTilesStopPoints(stopPointsInfo); this.Add(stopPoints); Player = new Player(Tile.PlayerPosition[0]); this.Add(Player); Player.Added(this); onewayInfo = LevelTiler.TileConverison(Tile.CollisionLayer, 3); for (int i = 0; i < onewayInfo.GetLength(0); i++) { for (int j = 0; j < onewayInfo.GetLength(1); j++) { bool tile = onewayInfo[i, j]; if (tile == false) { continue; } Vector2 position = new Vector2(i * TileInformation.TileWidth, j * TileInformation.TileHeight); Oneway platform = new Oneway(position); this.Add(platform); platform.Added(this); } } foreach (Entity entity in Tile.Entites) { if (entity.Type == "Enemy") { BasicEnemy enemy = new BasicEnemy(entity.Position); this.Add(enemy); enemy.Added(this); } if (entity.Type == "FallingPlatform") { FallingPlatform fallingPlatform = new FallingPlatform(entity.Position); this.Add(fallingPlatform); fallingPlatform.Added(this); } if (entity.Type == "MovingPlatform") { MovingPlatform movingPlatform = new MovingPlatform(entity.Position); this.Add(movingPlatform); movingPlatform.Added(this); } if (entity.Type == "MovingPlatformVert") { MovingPlatformVert movingPlatform = new MovingPlatformVert(entity.Position); this.Add(movingPlatform); movingPlatform.Added(this); } } }