public MapCollider(IsometricMap map) { var collidersGroup = map.ObjectGroups["Colliders"]; Colliders = new PolygonCollider[collidersGroup.Count]; for (var i = 0; i < collidersGroup.Count; i++) { var obj = collidersGroup[i]; var points = new Vector2[4]; points[0] = new Vector2(obj.Position.X, obj.Position.Y); //Topleft points[1] = new Vector2(obj.Position.X + obj.Width, obj.Position.Y); //Topright points[2] = new Vector2(obj.Position.X + obj.Width, obj.Position.Y + obj.Height); //BotRight points[3] = new Vector2(obj.Position.X, obj.Position.Y + obj.Height); //BotLeft for (var o = 0; o < 4; o++) { points[o] = Isometric.WorldToIsometricWorld(points[o], map); } Colliders[i] = new PolygonCollider(points); Colliders[i].SetShouldColliderScaleAndRotateWithTransform(true); //entity.addComponent<BoxCollider>(colliders[i]); } }
public override void Load() { mainGame.IsMouseVisible = true; isometricGrid = mainGame.Content.Load <Texture2D>("isogrid"); snowMap = new IsometricMap(); // pas super snowMap.Load(mainGame.Content); zoom = 2; //C'est ici qu'on définit réellement le zoom //Player : Player.Instance.Load(mainGame); Factory.Instance.LoadPlayer(); //ça charge le json avec les données des persos du joueur Player.Instance.currentCharacter.mapRepresentation.Load(); //ça initialise le perso //test__ Player.Instance.currentCharacter.mapRepresentation.HitboxShape = new CommonImagery.Polygon(); Player.Instance.currentCharacter.mapRepresentation.HitboxShape.Points.Add(new CommonImagery.Vector(0, 2)); Player.Instance.currentCharacter.mapRepresentation.HitboxShape.Points.Add(new CommonImagery.Vector(Player.Instance.currentCharacter.mapRepresentation.HitboxShape.Points.ElementAt(0).X - 9, Player.Instance.currentCharacter.mapRepresentation.HitboxShape.Points.ElementAt(0).Y - 6)); Player.Instance.currentCharacter.mapRepresentation.HitboxShape.Points.Add(new CommonImagery.Vector(Player.Instance.currentCharacter.mapRepresentation.HitboxShape.Points.ElementAt(0).X, Player.Instance.currentCharacter.mapRepresentation.HitboxShape.Points.ElementAt(0).Y - 12)); Player.Instance.currentCharacter.mapRepresentation.HitboxShape.Points.Add(new CommonImagery.Vector(Player.Instance.currentCharacter.mapRepresentation.HitboxShape.Points.ElementAt(0).X + 9, Player.Instance.currentCharacter.mapRepresentation.HitboxShape.Points.ElementAt(0).Y - 6)); //test__ legisteTest = Factory.Instance.LoadTestCharacter(); legisteTest.HitboxShape = new CommonImagery.Polygon(); legisteTest.HitboxShape.Points.Add(new CommonImagery.Vector(0, 2)); legisteTest.HitboxShape.Points.Add(new CommonImagery.Vector(legisteTest.HitboxShape.Points.ElementAt(0).X - 9, legisteTest.HitboxShape.Points.ElementAt(0).Y - 6)); legisteTest.HitboxShape.Points.Add(new CommonImagery.Vector(legisteTest.HitboxShape.Points.ElementAt(0).X, legisteTest.HitboxShape.Points.ElementAt(0).Y - 12)); legisteTest.HitboxShape.Points.Add(new CommonImagery.Vector(legisteTest.HitboxShape.Points.ElementAt(0).X + 9, legisteTest.HitboxShape.Points.ElementAt(0).Y - 6)); legisteTest.UpdateZOrder(); base.Load(); }
public override void Initialize() { ClearColor = Color.CornflowerBlue; var renderer = new RenderLayerExcludeRenderer(1, UIComponent.UIRenderLayer); AddRenderer(renderer); // var map = content.Load<TmxMap>("Map/untitled"); var tiledEntity = CreateEntity("mapEntity"); Benchmark.Go(() => { map = Content.Load("/Map/untitled.tmx"); isometricMapComponent = new IsometricMapComponent(map); tiledEntity.AddComponent(isometricMapComponent); }); NetworkSingleton.Instance.OnInitialized += OnNetworkInitialized; NetworkSingleton.Instance.OnClientConnected += OnClientConnected; var txt2D = Content.Load <Texture2D>("player"); players = new PlayerFactory(this, 10, txt2D); colliderEntity = CreateEntity("collider"); var collider = new MapCollider(map); foreach (var t in collider.Colliders) { colliderEntity.AddComponent(t); } var spawnObject = map.ObjectGroups["Objects"].GetTiledObject("spawn"); Camera.SetPosition(spawnObject.WorldPosition); //camera.transform.setPosition(spawn.x+camera.bounds.width/4, spawn.y-camera.bounds.height/1.5f); UISetUp(); }