Я просмотрел его и сумел заставить его работать, используя валидацию, если нарисованный спрайт имеет нулевую ссылку (без текстуры), он проигнорирует его и продолжит рисовать все остальное.
Измените ваш метод Draw () в Sprite.cs следующим образом:
//Draw the sprite to the screen
public void Draw(SpriteBatch theSpriteBatch)
{
if (mSpriteTexture != null)
{
theSpriteBatch.Draw(mSpriteTexture, Position,
new Rectangle(0, 0, mSpriteTexture.Width, mSpriteTexture.Height), Color.White,
0.0f, Vector2.Zero, Scale, SpriteEffects.None, 0);
}
}
Проблема возникает из-за того, что вы никогда не даете " Sprite mSprite; " a текстуру только позицию.
Быстрый фрагмент:
protected override void LoadContent()
{
spriteBatch = new SpriteBatch(GraphicsDevice);
mSprite.Position = new Vector2(125, 245);
mSpriteTwo.LoadContent(this.Content, "SquareGuy");
mSpriteTwo.Position.X = 300;
mSpriteTwo.Position.Y = 300;
Как вы видите, вы предоставляете mSprite только позицию 125 245, просто присвойте ей текстуру, как у вас с остальными спрайтами, и она будет работать нормально.
Вам не нужно удалять if(mSpriteTexture != null)
из метода Draw () после назначения текстуры, хотя, если вы этого не сделаете, это просто означает, что вы не заметите, если что-то назначено неправильно, может будьте болью, если позже вы отлаживаете что-то еще.