public Block CreateBlock(char type, Vector2 position) { Block newBlock; switch (type) { case 'n': newBlock = new Block(_content.Load<Texture2D>("block"), position, _runner, _defaultAnimNb); break; case 'd': newBlock = new DestructibleBlock(_content.Load<Texture2D>("destructibleblock"), position, _runner, _defaultAnimNb); break; case 'b': newBlock = new ReboundBlock(_content.Load<Texture2D>("reboundBlock"), position, _runner, _defaultAnimNb); break; case 'm': newBlock = new SlidingBlock(_content.Load<Texture2D>("slideblock"), position, _runner, _defaultAnimNb); break; case 's': newBlock = new SpeedupBlock(_content.Load<Texture2D>("speedblock"), position, _runner, _defaultAnimNb); break; case 'i': newBlock = new TeleporterEntranceBlock(_content.Load<Texture2D>("teleporterentrance"), position, _runner, _defaultAnimNb); break; case 'o': newBlock = new TeleporterEntranceBlock(_content.Load<Texture2D>("teleporterexit"), position, _runner, _defaultAnimNb); break; case 'a': newBlock = new AutoDestructiveBlock(_content.Load<Texture2D>("block"), position, _runner, _defaultAnimNb); break; default: newBlock = null; break; } if (newBlock != null && (_farthestBlock == null || newBlock.Position.X > _farthestBlock.Position.X)) _farthestBlock = newBlock; return newBlock; }
private void InitBlocks() { for (int i = 0; i < _blockMaxW; ++i) { Block tmp1 = new Block(_blockTexture, new Vector2(i * GameSettings.BlockWidth, 0), _runner); Block tmp2 = new Block(_blockTexture, new Vector2(i * GameSettings.BlockWidth, _mapHeight - GameSettings.BlockHeight), _runner); Blocks.Add(tmp1); Blocks.Add(tmp2); //this.Components.Add(tmp1); //this.Components.Add(tmp2); } _blocksInit = true; }