Я пытаюсь создать видео-игру «Марио», и, чтобы получить пересекающиеся объекты, наш учитель предоставил нам пример демонстрации, который позволяет объекту обнаруживать, если он касался ТОЧНО одного другого объекта, а первый объект что метод находит, возвращается. Я пытаюсь, вместо этого, возвращать массив каждого объекта, который текущий объект в данный момент касается. Я был способен возвращать массив всех объектов в настоящее время касаясь его, но теперь мне нужен простой/эффективный способ проверить, если массив содержит объект требуемого типа, например,Как вы запрашиваете массив, если он содержит конкретный класс?
if (array.Contains(Mario))
{
//Do Work here
}
массива, который является если он содержит (Марио), является возвращенным массивом пересекающихся спрайтов, но когда я спрашиваю, действительно ли он содержит объекты типа Mario, он говорит: «Ошибка 14« WindowsGame10.Mario »является« типом », но используется как «переменная». Я знаю, что могу сделать это с помощью цикла for, и спросить каждый отдельный индекс в массиве if (array[i].GetType() == typeof(Mario))
, но за количество раз, которое мне нужно будет выполнить эту проверку внутри кода, и повторять один и тот же код снова и снова, я чувствую что мне нужно изучить более эффективный способ выполнения этого. Я нахожусь в своем первом году компьютерного программирования, и я работаю с C# XNA, и мне нужно иметь некоторое решение, которое я могу понять. Если есть лучший способ сделать это, пожалуйста, дайте мне знать.
Вы всегда можете просто обернуть эту петлю в методе, избегая дублирования кода , – prelic