Exemple #1
0
        public void SetupTiles()
        {
            if (Core.Scene == null)
            {
                return;
            }
            MapList = FileManager.GetMapInformation("Data/" + ConstantValues.MapDataFileName);
            Map.Map         map = null;
            CharacterPlayer c   = LoginManagerClient.GetCharacter();

            foreach (var maps in MapList)
            {
                if (maps.MapName == c.LastMultiLocation)
                {
                    map = maps;
                }
            }
            if (map != null)
            {
                entity = Scene.CreateEntity(map.MapName);
                TiledMapRenderer tmr = entity.AddComponent(new TiledMapRenderer(map.TmxMap));
                tmr.Material = new Material(BlendState.NonPremultiplied);
                tmr.SetRenderLayer(1);
                tmr.SetLayersToRender(new string[] { "Tile", "Collision", "Decoration", "CustomCollision" });
                TmxObjectGroup l = map.TmxMap.GetLayer <TmxObjectGroup>("Objects");
                foreach (TmxObject obj in l.Objects)
                {
                    ObjectSceneEntity osc = new ObjectSceneEntity(obj, tmr.TiledMap.TileWidth);
                    osc.SetPosition(osc.Position);
                    Scene.AddEntity(osc);
                }
            }
        }
Exemple #2
0
        public void ChangeMap(Map.Map newMap)
        {
            entity.RemoveComponent <TiledMapRenderer>();
            TiledMapRenderer tmr = entity.AddComponent(new TiledMapRenderer(newMap.TmxMap));

            tmr.Material = new Material(BlendState.NonPremultiplied);
            tmr.SetRenderLayer(1);
            tmr.SetLayersToRender(new string[] { "Tile", "Collision", "Decoration", "CustomCollision" });
        }
Exemple #3
0
        public void SetupTiles()
        {
            if (Core.Scene == null || enabled)
            {
                return;
            }
            //enabled = true;
            TmxMap map    = Core.Scene.Content.LoadTiledMap("Assets/map.tmx");
            Entity entity = Core.Scene.CreateEntity("tiled-map");

            TiledMapRenderer tmr = entity.AddComponent(new TiledMapRenderer(map, "Collision", true));
            TmxLayer         CustomCollisionLayer = (TmxLayer)map.GetLayer("CustomCollision");

            foreach (TmxLayerTile tile in CustomCollisionLayer.Tiles)
            {
                if (tile != null && tile.TilesetTile != null)
                {
                    TmxList <TmxObjectGroup> objgl = tile.TilesetTile.ObjectGroups;

                    if (objgl != null && objgl.Count > 0)
                    {
                        TmxObjectGroup objg = objgl[0];
                        if (objg.Objects != null && objg.Objects.Count > 0)
                        {
                            TmxObject     obj  = objg.Objects[0];
                            TmxObjectType type = obj.ObjectType;

                            if (type == TmxObjectType.Ellipse)
                            {
                                //Draw Ellipse as collision
                                Core.Scene.CreateEntity(obj.Name, new Vector2(tile.Position.X * tile.Tileset.TileWidth + obj.Width / 2, tile.Position.Y * tile.Tileset.TileHeight + obj.Height / 2))
                                .AddComponent(new FSCollisionEllipse(obj.Width / 2, obj.Height / 2))
                                .AddComponent(new CircleCollider((obj.Width + obj.Height) / 4));     // have to get an average of sides, hence / 4
                            }
                            else if (type == TmxObjectType.Polygon)
                            {
                                Vector2[] points = obj.Points;

                                Core.Scene.CreateEntity(obj.Name, new Vector2(tile.Tileset.TileWidth * tile.Position.X + obj.X, tile.Tileset.TileHeight * tile.Position.Y + obj.Y))
                                .AddComponent(new FSCollisionPolygon(points))
                                .AddComponent(new PolygonCollider(points));
                            }
                            //basic is rectangle
                            else if (type == TmxObjectType.Basic)
                            {
                                Core.Scene.CreateEntity(obj.Name, new Vector2(tile.Position.X * tile.Tileset.TileWidth + obj.Width / 2, tile.Position.Y * tile.Tileset.TileHeight + obj.Height / 2))
                                .AddComponent(new FSCollisionBox(obj.Width, obj.Height))
                                .AddComponent(new BoxCollider(obj.Width, obj.Height));
                            }
                        }
                    }
                }
            }
            tmr.SetLayersToRender(new string[] { });
        }
        public override void OnAddedToScene()
        {
            base.OnAddedToScene();
            Karta            = Scene.Content.LoadTiledMap(TMXKartaPlats);
            TiledMapRenderer = AddComponent(new TiledMapRenderer(Karta, KollitionsLager));
            TiledMapRenderer.SetLayersToRender(new[] { "Mark" });
            //här är huur man får fram object gruper från tiléd
            ObjGrupp        = Karta.GetObjectGroup("SpelarSpawn");
            SpawnSpelareEtt = ObjGrupp.Objects["spelare_ett"];
            SpawnSpelareTvå = ObjGrupp.Objects["spelare_två"];
            // render below/behind everything else. higher number = further back
            TiledMapRenderer.SetRenderLayer(2);

            KamraGränser();
        }
Exemple #5
0
        public static void LoadMaps(MainScene scene)
        {
            MapList = FileManager.GetMapInformation("Data/MapData.json");
            int totalWidth = 0;

            Scene = scene;

            foreach (var map in MapList)
            {
                Entity SceneEntity = scene.CreateEntity(map.MapName);
                SceneEntity.SetPosition(totalWidth, 0);
                SceneEntity.AddComponent(map);
                TiledMapRenderer tmr = SceneEntity.AddComponent(new TiledMapRenderer(map.GetTmxMap(), "Collision", true));
                tmr.SetLayersToRender(new string[] { });

                totalWidth += map.GetTmxMap().WorldWidth + 100;
            }
        }
Exemple #6
0
        public override void OnAddedToScene()
        {
            base.OnAddedToScene();

            tileMap = Core.Content.LoadTiledMap(System.IO.Path.Combine(
                                                    Core.Content.RootDirectory,
                                                    "Levels/TileMap1.tmx"));

            tileMapRenderer = AddComponent(new TiledMapRenderer(tileMap));

            tileMapRenderer.SetLayersToRender(new string[] { "Foreground", "Background" });

            tileMapRenderer.PhysicsLayer = (int)Physics.PhysicsLayer.Collidable;

            tileMapRenderer.CollisionLayer = tileMap.GetLayer <TmxLayer>("Collision");

            tileMapRenderer.AddColliders();

            tileMapRenderer.LayerDepth = 1;

            TmxObjectGroup objectsLayer = tileMap.GetObjectGroup("Objects");

            objectsLayer.Visible = false;

            foreach (TmxObject obj in objectsLayer.Objects)
            {
                switch (obj.Type)
                {
                case AvatarObjectType:
                    Avatar avatar = Scene.AddEntity(new Avatar(obj.Position() + TiledObjectOffset));
                    Scene.Camera.AddComponent(new FollowCamera(avatar, FollowCamera.CameraStyle.LockOn));
                    break;

                case SlimeObjectType:
                    Slime slime = Scene.AddEntity(
                        new Slime(
                            obj.Position() + TiledObjectOffset,
                            obj.FullName()));

                    break;
                }
            }
        }