Доброго времени суток.
Пишу игру как курсач. Возникла идея для реализации перемещения противников: создать структуру Enemy, включающую координаты X и Y, булевую переменную (для регистрации того, отрисован конкретный противник или нет), дамаг и hp противников и создать для них массив horde из пяти элементов, который объявляется в методе MainWindow(). Заполнение полей в элементах массива происходит в методе (содержащем цикл for) вызываемом в MainWindow():
private void Initialize_enemy(ref Enemy tom)
{
for (int i = 0; i <= 5; i++)
{
tom.y_enemies = 110;
tom.hp_enemies = 5;
tom.damage_enemies = 1;
tom.have_enemies = false;
//генерация координаты x противника
Random rand = new Random();
tom.x_enemies = rand.Next(70, 1200);
}
}
Планировалось, что один противник будет отрисовываться раз в 5 секунд методом Draw_Enemy (в который передаётся Y координата), вызываемом в событии тика таймера Enemy_Tick. По тику таймера Game_Tick объект менял бы свою Y координату и тем самым перемещался. Я подyмал что можно попытаться перегрузить Enemy_Tick и Game_Tick вот таким образом, ибо не видел других вариантов:
private void Enemy_Tick(object sender, EventArgs e, ref Enemy tom)
{
Draw_Enemy(ref horde[5]);
}
private void Game_Tick(object sender, EventArgs e, ref Enemy tom)
{
if (have_enemy == true)
Enemy_Timer.Start();
for (int i = 0; i < 5; i++)
{
if (tom.have_enemies == true)
{
tom.y_enemies += 3;
can.Children.Remove(/*имя фигyры*/);
Draw_Enemy(ref horde[i]);
}
}
}
}
В итоге словил по 2 ошибки каждого вида:
CS0103 "Имя "horde" не существует в текущем контексте".
CS0123 "Нет перегруженного метода для "Enemy_Tick", который соответствует делегату "EventHandler"."
Попытался объявить массив как public Enemy[] horde;
и вместо двух CS0103 поймал другую ошибку:
CS0052 "Несогласованность по доступности: доступность типа поля "MainWindow.Enemy[]" ниже доступности поля "MainWindow.horde"
Других идей нет по реализации перемещения противников нет, я не знаю что делать. Прошу, помогите.
Вынести массив в статический класс (public static ArrayEnemy). ref horde[5] - ссылка на объект "horde" который не известен(передайте в метод ref horde), по остальным не могу сказать...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
С преобразованием значимого типа в объект и обратно все понятно — там появляются допоперации на упаковку/распаковку
На скриншотах: первая строка ListView, вторая строка DataGridView
Всем привет, подскажите как вывести стринговое значение (string) в labelText (C#, Visual Studio 2017, Windows Form Application);