public void LoadMap(JsonData data, ref Camera cam) { tiles.Clear(); rows = (int)data["rows"]; columns = (int)data["columns"]; tileSize = (int)data["tileSize"]; player = new Player(); player.Initialize("PlayerAnimations", "PlayerCollision"); player.Position = new Vector2((int)data["playerPos"][0], (int)data["playerPos"][1]); for (int y = 0; y < rows; y++) { string mapString = (string)data["tiles"][y]; for (int x = 0; x < columns; x++) { string tile = mapString.Substring(x, 1); EditorTile newTile = new EditorTile(int.Parse(tile), ref cam); newTile.Position = new Vector2(x * tileSize, y * tileSize); newTile.Initialize(); tiles.Add(newTile); } } for (int i = 0; i < data["entities"].Count; i++) { string name = data["entities"][i]["name"].ToString(); switch (name) { case "slime": Slime slime = new Slime(); slime.Initialize("Slime"); slime.Position = new Vector2((int)data["entities"][i]["position"][0], (int)data["entities"][i]["position"][1]); entities.Add(slime); break; } } }
public override void Update(GameTime gameTime) { if (InputManager.Instance.isDown(Keys.W)) { cam.position += new Vector2(0, -2); } if (InputManager.Instance.isDown(Keys.S)) { cam.position += new Vector2(0, 2); } if (InputManager.Instance.isDown(Keys.A)) { cam.position += new Vector2(-2, 0); } if (InputManager.Instance.isDown(Keys.D)) { cam.position += new Vector2(2, 0); } if (previewTile.Id < 9 && InputManager.Instance.getMouseWheelState() > InputManager.Instance.getOldMouseWheelState()) { previewTile.Id++; } if (previewTile.Id > 0 && InputManager.Instance.getMouseWheelState() < InputManager.Instance.getOldMouseWheelState() && cam.zoom > 0.1f) { previewTile.Id--; } if (InputManager.Instance.isDown(Keys.LeftAlt)) { if (InputManager.Instance.getMouseWheelState() > InputManager.Instance.getOldMouseWheelState()) { cam.zoom += 1; } if (InputManager.Instance.getMouseWheelState() < InputManager.Instance.getOldMouseWheelState() && cam.zoom > 0.1f) { cam.zoom -= 1; } } if (InputManager.Instance.isPressed(Keys.Tab)) { drawTileID = !drawTileID; } if (editorMode == EditorMode.TileMode) { if (map != null && !overUI) { for (int i = 0; i < map.tiles.Count; i++) { EditorTile temp = (EditorTile)map.tiles[i]; if (temp.BoundingBox.Contains(InputManager.Instance.getMouseWorldPos(cam.GetViewMatrix())) && InputManager.Instance.mouseIsPressed(CoreGame.Managers.MouseButton.Left)) { Debug.WriteLine("Mouse Pos" + InputManager.Instance.getMouseWorldPos(cam.GetViewMatrix())); Debug.WriteLine("Pos" + temp.Position); temp.Id = previewTile.Id; temp.Initialize(); } } } } if (editorMode == EditorMode.EntityMode) { previewEntity.Position = InputManager.Instance.getMousePos(); previewEntity.Update(gameTime); map.Update(gameTime); } UIManager.Update(gameTime); base.Update(gameTime); }