public Stage(ContentManager content, BoxingViewportAdapter view) { camera.Pos = new Vector2(0, 0); xmlMap.Load("Content/maps/teste.tmx"); /* Makes a list of every layer in the given stage */ xmlLayers = xmlMap.GetElementsByTagName("layer"); /* These instructions will determine the size of the stage matrix */ mapWidth = int.Parse(xmlMap.DocumentElement.Attributes.GetNamedItem("width").Value); mapHeight = int.Parse(xmlMap.DocumentElement.Attributes.GetNamedItem("height").Value); /* */ layers = new List <Tile[, ]>(); depthSorting = new Vector2[3, 3]; /* Makes an instance of the Texture List */ textureList = new Texture2D[2]; /* Sometimes the thread doesn't load everything, since it's all happening so fast */ //Thread tFillStageMatrix = new Thread(ConvertToInt); //tFillStageMatrix.Start(); LoadTextures(content); ChangeStage(1); mainCharacter = new Character(content, view); mainCharacter.setPosition(IsometricCoord.MapToIso(new Vector2(1, 1))); // X = J Y = I // The number inside this instruction tell // the position inside the matrix }
public void SetUpPosition() { Vector2 pos; for (int i = 0; i < mapHeight; i++) { for (int j = 0; j < mapWidth; j++) { pos.X = j; pos.Y = i; pos = IsometricCoord.MapToIso(pos); layers[0][i, j].Position = pos; } } for (int i = 0; i < mapHeight; i++) { for (int j = 0; j < mapWidth; j++) { pos.X = j - 1; pos.Y = i - 1; pos = IsometricCoord.MapToIso(pos); layers[1][i, j].Position = pos; } } }
public Stage(ContentManager content) { _Camera.Position = new Vector2(0, 0); _TextureList = new Texture2D[4]; LoadTextures(content); ChangeStage((int)_Stages.FirstStage); _MainCharacter = new Character(content); _MainCharacter.AbsolutePosition = (IsometricCoord.MapToIso(new Vector2(8, 8))); // X = J Y = I _MainCharacter.Neighbours = new Vector2[3, 3]; }
public void Update(KeyboardState ks, MouseState ms) { previousMouseScrollWheelValue = currentMouseScrollWheelValue; currentMouseScrollWheelValue = ms.ScrollWheelValue; if (ks.IsKeyDown(Keys.D1)) { mainCharacter.setPosition(IsometricCoord.MapToIso(new Vector2(1, 1))); } if (ks.IsKeyDown(Keys.D2)) { mainCharacter.setPosition(IsometricCoord.MapToIso(new Vector2(18, 1))); } if (ks.IsKeyDown(Keys.D3)) { mainCharacter.setPosition(IsometricCoord.MapToIso(new Vector2(15, 5))); } if (ks.IsKeyDown(Keys.W)) { camera.Move(new Vector2(0, -2)); } if (ks.IsKeyDown(Keys.S)) { camera.Move(new Vector2(0, 2)); } if (ks.IsKeyDown(Keys.A)) { camera.Move(new Vector2(-2, 0)); } if (ks.IsKeyDown(Keys.D)) { camera.Move(new Vector2(2, 0)); } if (currentMouseScrollWheelValue > previousMouseScrollWheelValue) { camera.Zoom = camera.Zoom + 0.05f; } if (currentMouseScrollWheelValue < previousMouseScrollWheelValue) { camera.Zoom = camera.Zoom - 0.05f; } if (ks.IsKeyDown(Keys.Up)) { Vector2 positionAux; Vector2 matrixAux; positionAux = mainCharacter.getPosition() - new Vector2(0, 1); matrixAux = IsometricCoord.IsoToMap(positionAux); if (matrixAux.Y > 0 && matrixAux.X > 0 && !doesItCollide(matrixAux)) { mainCharacter.setPosition(new Vector2(mainCharacter.getPosition().X, mainCharacter.getPosition().Y - Character.speed)); } } if (ks.IsKeyDown(Keys.Right)) { Vector2 positionAux; Vector2 matrixAux; positionAux = mainCharacter.getPosition() + new Vector2(1, 0); matrixAux = IsometricCoord.IsoToMap(positionAux); if (matrixAux.Y > 0 && matrixAux.X < mapWidth - 1 && !doesItCollide(matrixAux)) { mainCharacter.setPosition(new Vector2(mainCharacter.getPosition().X + Character.speed, mainCharacter.getPosition().Y)); } } if (ks.IsKeyDown(Keys.Down)) { Vector2 positionAux; Vector2 matrixAux; positionAux = mainCharacter.getPosition() + new Vector2(0, 1); matrixAux = IsometricCoord.IsoToMap(positionAux); if (matrixAux.Y < mapHeight - 1 && matrixAux.X < mapWidth - 1 && !doesItCollide(matrixAux)) { mainCharacter.setPosition(new Vector2(mainCharacter.getPosition().X, mainCharacter.getPosition().Y + Character.speed)); } } if (ks.IsKeyDown(Keys.Left)) { Vector2 positionAux; Vector2 matrixAux; positionAux = mainCharacter.getPosition() - new Vector2(1, 0); matrixAux = IsometricCoord.IsoToMap(positionAux); if (matrixAux.X > 0 && matrixAux.Y < mapHeight - 1 && !doesItCollide(matrixAux)) { mainCharacter.setPosition(new Vector2(mainCharacter.getPosition().X - Character.speed, mainCharacter.getPosition().Y)); } } depthSorting[0, 0] = new Vector2(mainCharacter.getMatrixPosition().X - 1, mainCharacter.getMatrixPosition().Y - 1); depthSorting[0, 1] = new Vector2(mainCharacter.getMatrixPosition().X, mainCharacter.getMatrixPosition().Y - 1); depthSorting[0, 2] = new Vector2(mainCharacter.getMatrixPosition().X + 1, mainCharacter.getMatrixPosition().Y - 1); depthSorting[1, 0] = new Vector2(mainCharacter.getMatrixPosition().X - 1, mainCharacter.getMatrixPosition().Y); depthSorting[1, 1] = new Vector2(mainCharacter.getMatrixPosition().X, mainCharacter.getMatrixPosition().Y); depthSorting[1, 2] = new Vector2(mainCharacter.getMatrixPosition().X + 1, mainCharacter.getMatrixPosition().Y); depthSorting[2, 0] = new Vector2(mainCharacter.getMatrixPosition().X - 1, mainCharacter.getMatrixPosition().Y + 1); depthSorting[2, 1] = new Vector2(mainCharacter.getMatrixPosition().X, mainCharacter.getMatrixPosition().Y + 1); depthSorting[2, 2] = new Vector2(mainCharacter.getMatrixPosition().X + 1, mainCharacter.getMatrixPosition().Y + 1); }