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;
 }