Как получить имя содержимого Texture2D xna

#c# #xna #filenames #texture2d

#c# #xna #имена файлов #texture2d

Вопрос:

Я разрабатываю игру в xna, и мне нужно получить имя содержимого texture2d, чтобы узнать, является ли нажатое правильным, из-за того, что они будут заряжаться случайным образом, например

       repeat= Content.Load<Texture2D>("repeat");
  

Мне понадобится что-то, что позже сообщит мне, что имя содержимого текстуры 2d — «повторение»
Спасибо!

Ответ №1:

Ответ на то, что вы спрашиваете, таков:

 repeat.Name.ToString();
  

но в этом буквально нет смысла. Вы уже назвали Texture2D ‘repeat’?

Если вы меняете изображения случайным образом, загрузите все текстуры, а затем просто нарисуйте ту, которая была выбрана случайным образом:

  repeat = Content.Load<Texture2D>("repeat");
 repeat1 = Content.Load<Texture2D>("repeat1");
 repeat2 = Content.Load<Texture2D>("repeat2");

public override void Draw(GameTime gameTime)
{
SpriteBatch.Begin();
if (random == 0)
{
SpriteBatch.Draw(repeat, Position, Color);
}
else if (random == 1)
{
SpriteBatch.Draw(repeat1, Position, Color);
}
else if (random == 2)
{
SpriteBatch.Draw(repeat2, Position, Color);
}
SpriteBatch.End();
}
  

Что-то вроде этого.

Комментарии:

1. А что, если у меня есть массив? Как я могу идентифицировать элемент по тому, что у него есть?

2. Так же, как вы бы сделали любой другой массив, что-то вроде этого: for (int i = 0; i < textureArray . Count; i ) { строковое имя = textureArray[i].Name. toString(); // Получить имя текстуры. if (name == «TheNameIWant») { //Сделать что-нибудь } }