/// <summary> /// Inicializa una nueva instancia de la clase AzulEngine.TileEngine.TileLayer que permite /// crear una instancia completa con transparencia, visibilidad, posición, escala, velocidad, independencia de cámara y dirección de movimiento /// </summary> /// <param name="tileCatalog">Catálogo de baldosas</param> /// <param name="tileMap">Mapa de baldosas</param> /// <param name="transparency">Transparencia de la capa</param> /// <param name="visible">Visibilidad de la capa</param> /// <param name="position">Posición de la capa</param> /// <param name="zoomScale">Escala inicial de la capa</param> /// <param name="velocity">Velocidad de desplazamiento de la capa</param> /// <param name="cameraIndependent">Indica si la capa es independiente del movimiento de la cámara</param> /// <param name="direction">Dirección de desplazamiento de la capa cuando esta es independiente de la cámara</param> public TileLayer(TileCatalog tileCatalog, TileMap tileMap, float transparency, Boolean visible, Vector2 position, Vector2 zoomScale, Vector2 velocity, bool cameraIndependent, LayerMovementDirection direction) : base(transparency, visible, position, zoomScale, velocity, cameraIndependent, direction) { this.TileCatalog = tileCatalog; this.TileMap = tileMap; }
/// <summary> /// Inicializa una nueva instancia de la clase AzulEngine.TileEngine.TileLayer que permite /// crear una instancia solo con un cátalogo y un mapa de baldosas /// </summary> /// <param name="tileCatalog">Cátalogo de baldosas</param> /// <param name="tileMap">Mapa de baldosas</param> public TileLayer(TileCatalog tileCatalog, TileMap tileMap) : this(tileCatalog, tileMap, 1.0f, true, Vector2.Zero, Vector2.One, Vector2.One, false, LayerMovementDirection.None) { }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); camera = new Camera2D(new Vector2(0f, 0f), new Vector2(1f), new Vector2(3f)); this.Services.AddService(typeof(SpriteBatch), spriteBatch); this.Services.AddService(typeof(Camera2D), camera); texture1 = this.Content.Load<Texture2D>("tex"); TileCatalog cat1 = new TileCatalog(texture1, 15, 15); Random rand = new Random(DateTime.Now.Millisecond); TileMap map1 = new TileMap(100, 100); for (int i = 0; i < 100; i++) { for (int j = 0; j < 100; j++) { map1.SetTile(i, j, new Tile(rand.Next(1, cat1.TilePositions.Count))); } } TileLayer layer1 = new TileLayer(cat1, map1, 0.5f, false, new Vector2(0, 0), new Vector2(1f, 1f), new Vector2(3f), false, LayerMovementDirection.None); texture2 = this.Content.Load<Texture2D>("tiles2"); TileCatalog cat2 = new TileCatalog(texture2, 48, 48); TileMap map2 = new TileMap(10, 500); for (int i = 0; i < 10; i++) { for (int j = 0; j < 500; j++) { map2.SetTile(i, j, new Tile(rand.Next(1, cat2.TilePositions.Count))); } } TileLayer layer2 = new TileLayer(cat2, map2, 1.0f, false, new Vector2(0, 0), new Vector2(1f, 1f), new Vector2(3f), true, LayerMovementDirection.Up); scene = new TileScene(); scene.AddLayer(layer2); scene.AddLayer(layer1); TileComponent component = new TileComponent(this, scene, baseScreenSize, resultionIndependent); this.Components.Add(component); TextureLayer tLayer1 = new TextureLayer(this.texture1, 1f, false, new Vector2(20f), Vector2.One, new Vector2(1.5f,1.5f), true, Anchor.LowerRight); TextureLayer tLayer2 = new TextureLayer(this.texture2, 0.5f, false, new Vector2(10f), Vector2.One, new Vector2(5f), true, Anchor.LowerLeft); TextureScene tScene = new TextureScene(); tScene.AddLayer(tLayer1); tScene.AddLayer(tLayer2); TextureComponent tComponent = new TextureComponent(this, tScene, baseScreenSize, resultionIndependent); this.Components.Add(tComponent); texture1 = this.Content.Load<Texture2D>("megax"); SpriteCatalog scatalog = new SpriteCatalog(texture1, 36, 42); SpriteSequence[] spriteSecuences = new SpriteSequence[2]; SpriteSequence spriteSecuence1 = new SpriteSequence(7, 0); spriteSecuence1.StepTime = 400; spriteSecuence1.SetFrame(0,new SpriteFrame(1)); spriteSecuence1.SetFrame(1, new SpriteFrame(1)); spriteSecuence1.SetFrame(2, new SpriteFrame(1)); spriteSecuence1.SetFrame(3, new SpriteFrame(1)); spriteSecuence1.SetFrame(4, new SpriteFrame(2)); spriteSecuence1.SetFrame(5, new SpriteFrame(3)); spriteSecuence1.SetFrame(6, new SpriteFrame(1)); spriteSecuences[0] = spriteSecuence1; SpriteSequence spriteSecuence2 = new SpriteSequence(10, 0); spriteSecuence2.StepTime = 90; spriteSecuence2.SetFrame(0, new SpriteFrame(5)); spriteSecuence2.SetFrame(1, new SpriteFrame(6)); spriteSecuence2.SetFrame(2, new SpriteFrame(7)); spriteSecuence2.SetFrame(3, new SpriteFrame(8)); spriteSecuence2.SetFrame(4, new SpriteFrame(9)); spriteSecuence2.SetFrame(5, new SpriteFrame(10)); spriteSecuence2.SetFrame(6, new SpriteFrame(11)); spriteSecuence2.SetFrame(7, new SpriteFrame(12)); spriteSecuence2.SetFrame(8, new SpriteFrame(13)); spriteSecuence2.SetFrame(9, new SpriteFrame(14)); spriteSecuences[1] = spriteSecuence2; SpriteLayer spLayer = new SpriteLayer(scatalog, spriteSecuences, 1.0f, true, new Vector2(10f), Vector2.One, Vector2.Zero, SpriteEffects.None, true, Anchor.None); spLayer.CurrentSequence = 2; SpriteScene spScene = new SpriteScene(); spScene.AddLayer(spLayer); SpriteComponent spComponent = new SpriteComponent(this, spScene, baseScreenSize, resultionIndependent); this.Components.Add(spComponent); }