public object Clone() { var obj = (this.MemberwiseClone() as TiledMapDataContainer); obj.TiledData = (TiledData.Clone() as CozyTiledData); return(obj); }
/// <summary> /// 初始化SceneTiled模块地图 /// </summary> /// <param name="gObj">主GameObject</param> /// <param name="worldMapIndex">世界地图中的索引</param> public void Initlizate(GameObject gObj) { mainObj = gObj; mainObj.name += "_" + WorldMapIndex; #if UNITY_EDITOR if (MapDebug.DebugSceneTiled) { gObj.AddComponent <SceneTiledGizmo>(); } #endif gObj.transform.localScale = Vector3.one; gObj.transform.position = WorldPosition; mapPoint = CoordinationConvert.SceneWorldToMapPoint(WorldPosition); //构造场景内的地块信息 landTileds.Clear(); int halfWidth = LandTiled.halfTiledWidth; int halfHeight = LandTiled.halfTiledHeight; // Vector3 orginPos = WorldPosition + new Vector3(halfSceneWidth - halfWidth,0); Vector3 orginPos = WorldPosition + new Vector3(halfSceneWidth, 0); for (int i = 0; i < SceneRow; i++) { int tiledRowIndex = i * SceneRow; for (int j = 0; j < SceneColumn; j++) { int tiledIndex = tiledRowIndex + j; //计算世界坐标中的位置 float tiledX = halfWidth * j - halfWidth * i; float tiledY = -halfHeight * j - halfHeight * i; Vector3 position = new Vector3(tiledX, tiledY); position += orginPos; //构造记录映射 TiledData td = new TiledData(); //td.TiledId = ; td.SceneIndex = (byte)WorldMapIndex; td.Index = tiledIndex; //实例土地 LandTiled landTiled = new LandTiled(td); landTiled.WorldPosition = position; landTileds.Add(landTiled); MapCreater.Instance.LoadDel("Assets/Prefabs/LandSprite.prefab", obj => { landTiled.Initlizate(obj, this); }); } } }
protected override void Initialize() { var player = BuildPlayer(PLAYERSTARTX, PLAYERSTARTY); Scene.AddEntityToScene(player); //var obstacles = BuildObstacles(); TiledData level = Parse(LevelName); var objectLayer = level.layers.FirstOrDefault(n => n.name == "Object Layer 1"); var objects = objectLayer.objects; var obstacles = objects.Where(n => n.gid == 15); var platforms = objects.Where(n => n.gid == 5); //var platforms = new List<TiledObject>(); var doubleJumps = objects.Where(n => n.gid == 9); var i = 0; foreach (var obstacle in obstacles) { var obstacleEntity = new BaseEntity(SceneManager, "Obstacle" + i.ToString(), obstacle.x, obstacle.y); var renderComponent = new RenderComponent(obstacleEntity, "atpButtHash", obstacle.width, obstacle.height); var physicsComponent = new PhysicsComponent(obstacleEntity, obstacle.width, obstacle.height); Scene.AddEntityToScene(obstacleEntity); i++; } i = 0; foreach (var platform in platforms) { var platformEntity = new BaseEntity(SceneManager, "Platform" + i.ToString(), platform.x, platform.y); var groundRender = new RenderComponent(platformEntity, "Platform", platform.width, platform.height); var groundPhysics = new PhysicsComponent(platformEntity, platform.width, platform.height); Scene.AddEntityToScene(platformEntity); i++; } i = 0; foreach (var doubleJump in doubleJumps) { var doubleJumpEntity = new BaseEntity(SceneManager, "DoubleJump" + i.ToString(), doubleJump.x, doubleJump.y); var renderComponent = new RenderComponent(doubleJumpEntity, "atpSolid", doubleJump.width, doubleJump.height); var physicsComponent = new PhysicsComponent(doubleJumpEntity, doubleJump.width, doubleJump.height); Scene.AddEntityToScene(doubleJumpEntity); i++; } var physics = LoadPhysics(); Scene.Physics = physics; base.Initialize(); }
public void Clear() { TiledData.Clear(); ClearMessage(TiledData, new TiledClearMessageArgs()); }
public void Write(int x, int y, uint data) { TiledData.Modify(x, y, data); DataMessage(TiledData, new TiledDataMessageArgs(x, y, data)); }
public LandTiled(TiledData td) { this.tileMap = td; }
public void Write(Stream WriteStream) { TiledData.Write(WriteStream); }
public void Load(Stream LoadStream) { TiledData.Load(LoadStream); }
public void Clear() { TiledData.Clear(); }
public void Change(int x, int y, uint data) { TiledData.Modify(x, y, data); }