Загружается только первая текстура. Если вы изменяете имя текстуры, вам следует снова вызвать Content.Load
.
Однако процессору сложнее продолжать перезагрузку изображений, и это лучше сделать, если все изображения загружаются одновременно. Поэтому вместо вызова части LoadContent()
вы должны создать вторую Texture2D и изменить текстуру напрямую, а не менять имя каталога.
Примерно так:
//add this to your public variables
public Texture2D currentTexture = null;
// Load
public void LoadContent(ContentManager Content)
{
texture = Content.Load<Texture2D>("playerShip");
texture2 = Content.Load<Texture2D>("playerShip2");
currentTexture = texture;
}
// Update
public void Update(GameTime gameTime)
{
KeyboardState curKeyboardState = Keyboard.GetState();
if (curKeyboardState.IsKeyDown(Keys.W))
{
currentTexture = texture2;
}
//...
}
// Draw
public void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(currentTexture, position, Color.White);
}