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]);
            }
        }
Exemple #2
0
        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();
        }
Exemple #3
0
        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();
        }