public Tile(Room room, Enumeration.TileType tileType, Enumeration.StateTile state, Enumeration.Items eitem, Enumeration.TileType NextTileType) { tileAnimation = new AnimationSequence(this); this.room = room; nextTileType = NextTileType; System.Xml.Serialization.XmlSerializer ax = new System.Xml.Serialization.XmlSerializer(tileSequence.GetType()); Stream txtReader = Microsoft.Xna.Framework.TitleContainer.OpenStream(PoP.CONFIG_PATH_CONTENT + PoP.CONFIG_PATH_SEQUENCES + tileType.ToString() + "_sequence.xml"); //TextReader txtReader = File.OpenText(PrinceOfPersiaGame.CONFIG_PATH_CONTENT + PrinceOfPersiaGame.CONFIG_PATH_SEQUENCES + tileType.ToString() + "_sequence.xml"); tileSequence = (List <Sequence>)ax.Deserialize(txtReader); foreach (Sequence s in tileSequence) { s.Initialize(); } //Search in the sequence the right type Sequence result = tileSequence.Find(delegate(Sequence s) { return(s.name.ToUpper() == state.ToString().ToUpper()); }); if (result != null) { //AMF to be adjust.... result.frames[0].SetTexture((Texture2D)Maze.Content[PoP.CONFIG_TILES + result.frames[0].value]); //result.frames[0].SetTexture(Content.Load<Texture2D>(PrinceOfPersiaGame.CONFIG_TILES + result.frames[0].value)); collision = result.collision; Texture = result.frames[0].texture; } Type = tileType; //change statetile element StateTileElement stateTileElement = new StateTileElement(); stateTileElement.state = state; tileState.Add(stateTileElement); tileAnimation.PlayAnimation(tileSequence, tileState); //load item switch (eitem) { case Enumeration.Items.flask: item = new Flask(); break; case Enumeration.Items.sword: item = new Sword(); break; } }
private Tile LoadTile(Enumeration.TileType tiletype, Enumeration.StateTile state, int switchButton, Enumeration.Items item, Enumeration.TileType nextTileType, float timeOpen) { switch (tiletype) { case Enumeration.TileType.spikes: return(new Spikes(this, content, tiletype, state, nextTileType)); case Enumeration.TileType.lava: return(new Lava(this, content, tiletype, state, nextTileType)); case Enumeration.TileType.pressplate: return(new PressPlate(this, content, tiletype, state, switchButton, nextTileType)); case Enumeration.TileType.closeplate: return(new ClosePlate(this, content, tiletype, state, switchButton, nextTileType)); case Enumeration.TileType.gate: return(new Gate(this, content, tiletype, state, switchButton, nextTileType, timeOpen)); case Enumeration.TileType.mirror: return(new Mirror(this, content, tiletype, state, switchButton, nextTileType, timeOpen)); case Enumeration.TileType.loose: return(new Loose(this, content, tiletype, state, nextTileType)); case Enumeration.TileType.block: return(new Block(this, content, tiletype, state, nextTileType)); case Enumeration.TileType.chomper: return(new Chomper(this, content, tiletype, state, nextTileType)); case Enumeration.TileType.exit: return(new Exit(this, content, tiletype, state, 0, nextTileType)); default: return(new Tile(this, content, tiletype, state, item, nextTileType)); } }
private Tile LoadTile(Enumeration.TileType tiletype, Enumeration.StateTile state, int switchButton, Enumeration.Items item, Enumeration.TileType nextTileType) { switch (tiletype) { case Enumeration.TileType.spikes: return(new Spikes(this, tiletype, state, nextTileType)); break; case Enumeration.TileType.pressplate: return(new PressPlate(this, tiletype, state, switchButton, nextTileType)); break; case Enumeration.TileType.gate: return(new Gate(this, tiletype, state, switchButton, nextTileType)); break; case Enumeration.TileType.loose: return(new Loose(this, tiletype, state, nextTileType)); break; case Enumeration.TileType.block: return(new Block(this, tiletype, state, nextTileType)); break; case Enumeration.TileType.exit: return(new Exit(this, tiletype, state, switchButton, nextTileType)); break; case Enumeration.TileType.chomper: return(new Chomper(this, tiletype, state, nextTileType)); break; default: return(new Tile(this, tiletype, state, item, nextTileType)); } }
public Tile(RoomNew room, ContentManager Content, Enumeration.TileType tileType, Enumeration.StateTile state, Enumeration.Items eitem, Enumeration.TileType NextTileType__1) { this.room = room; nextTileType = NextTileType__1; System.Xml.Serialization.XmlSerializer ax = new System.Xml.Serialization.XmlSerializer(m_tileSequence.GetType()); Stream txtReader = Microsoft.Xna.Framework.TitleContainer.OpenStream(PrinceOfPersiaGame.CONFIG_PATH_CONTENT + PrinceOfPersiaGame.CONFIG_PATH_SEQUENCES + tileType.ToString().ToUpper() + "_sequence.xml"); //TextReader txtReader = File.OpenText(PrinceOfPersiaGame.CONFIG_PATH_CONTENT + PrinceOfPersiaGame.CONFIG_PATH_SEQUENCES + tileType.ToString().ToUpper() + "_sequence.xml"); m_tileSequence = (List <Sequence>)ax.Deserialize(txtReader); foreach (Sequence s in m_tileSequence) { s.Initialize(Content); } //Search in the sequence the right type Sequence result = m_tileSequence.Find((Sequence s) => s.name == state.ToString().ToUpper()); if (result != null) { //AMF to be adjust.... result.frames[0].SetTexture(Content.Load <Texture2D>(PrinceOfPersiaGame.CONFIG_TILES[0] + result.frames[0].value)); collision = result.collision; Texture = result.frames[0].texture; } Type = tileType; //change statetile element StateTileElement stateTileElement = new StateTileElement(); stateTileElement.state = state; tileState.Add(stateTileElement); tileAnimation.PlayAnimation(m_tileSequence, tileState.Value()); //load item switch (eitem) { case Enumeration.Items.flask: item = new Flask(Content); break; // TODO: might not be correct. Was : Exit Select case Enumeration.Items.flaskbig: item = new FlaskBig(Content); break; // TODO: might not be correct. Was : Exit Select case Enumeration.Items.sword: item = new Sword(Content); break; // TODO: might not be correct. Was : Exit Select } }
public void LoadTilesApoplexy(Apoplexy.level Apoplexylevel, Apoplexy.tile[] ApoplexyTiles, Apoplexy.guard[] Apoplexyguards, Apoplexy.@event[] Apoplexyevents) { int ix = 0; int switchButton = 0; tiles = new Tile[10, 3]; //30 fix...sorry Enumeration.Items item = Enumeration.Items.none; for (int x = 0; x < 10; x++) { for (int y = 0; y < 3; y++) { ix = 10 * y + x; Enumeration.TileType nextTileType = Enumeration.TileType.space; Enumeration.TileType myTileType = Enumeration.TileType.space; Enumeration.StateTile myStateTile = Enumeration.StateTile.normal; //convert TileType to myTileType = Utils.ParseTileType(ApoplexyTiles[ix].element); myStateTile = Utils.ParseStateType(ref myTileType, ApoplexyTiles[ix].modifier); switchButton = Utils.ParseSwitchButton(myTileType, ApoplexyTiles[ix].modifier); if (myTileType == Enumeration.TileType.flask) { myTileType = Enumeration.TileType.floor; myStateTile = Enumeration.StateTile.normal; item = Enumeration.Items.flask; } else if (myTileType == Enumeration.TileType.sword) { myTileType = Enumeration.TileType.floor; myStateTile = Enumeration.StateTile.normal; item = Enumeration.Items.sword; } else { item = Enumeration.Items.none; } tiles[x, y] = LoadTile(myTileType, myStateTile, switchButton, item, nextTileType); Vector2 v = new Vector2(x * Tile.WIDTH, (y * Tile.HEIGHT) - Tile.HEIGHT_VISIBLE); tiles[x, y].Position = new Position(Vector2.Zero, new Vector2(Tile.WIDTH, Tile.REALHEIGHT)); tiles[x, y].Position.X = v.X; tiles[x, y].Position.Y = v.Y; } } //LOAD GUARD foreach (Apoplexy.guard g in Apoplexyguards) { if (g.location != "0") { int iLocation = int.Parse(g.location); int xGuard = iLocation % 10 - 1; int yGuard = iLocation / 10 + 1; xGuard = xGuard * Tile.WIDTH + Player.SPRITE_SIZE_X; yGuard = (yGuard * (Tile.HEIGHT)) - Sprite.SPRITE_SIZE_Y + Room.TOP_BORDER; Guard guardSprite = new Guard(this, new Vector2(xGuard, yGuard), maze.graphicsDevice, SpriteEffects.None); //to be fixed direction level.sprites.Add(guardSprite); } } }