В настоящее время я создаю простую игру на C #, и мой объект появляется в середине экрана, теперь я составил список для этого объекта, но мне было интересно, как мне сделать так, чтобы объект появлялся на экране 10 раз случайным образом? Я предполагаю для каждой петли какой-то?
object1 = new List<Gem>();
object2 = new List<Gem>();
Выше я составил список того класса, в котором хранится объект. Итак, снова просто пытаюсь выяснить, как заставить этот объект появляться в случайных местах на экране x10.
2 ответа
Предполагая, что ваш класс Gem
выглядит так:
class Gem
{
public int X {get;set;}
public int Y {get;set;}
// information about color/type/whatever
}
Вы можете сделать что-то вроде:
//make sure to have single instance of `Random` for class/whole program
Random rnd = new Random();
var gems = Enumerable.Range(1,10) // 10 items
.Select(i => new Gem { // create new Gem
X = rnd.Next(1, 100), // set position to random value 1-100, adjust to
Y = rnd.Next(1, 100), // desired width/height ranges
})
.ToList();// convert enumerable to list.
Итак, допустим, у меня есть объект IMAGE, который можно отобразить на экране с помощью вызова стиля XNA:
renderer.draw(IMAGE,COORD,COLOR);
Использование:
for(int x = 0; x < 10; x++)
{
renderer.draw(IMAGE,new COORD(rand.Next(IMAGE.WIDTH,SCREEN.SIZE.WIDTH - IMAGE.width),rand.Next(IMAGE.HEIGHT,SCREEN.SIZE.HEIGHT - IMAGE.HEIGHT)),COLOR);
}
Вам нужен только один экземпляр изображения, но, возможно, список координат.
Ваш логический объект «GEM» не должен содержать само изображение, а должен использоваться для указания визуализации, где нарисовать ваш единственный экземпляр изображения драгоценного камня.
Если вы можете создать часть своего кода рендеринга и часть кода GEM, я мог бы вам гораздо больше помочь
А забавная математика не даст вашему драгоценному камню рендериться за пределами экрана
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.
Gem
объектом, который вы пытаетесь отобразить? И вы хотите отобразить 10 из них?