Я только запускаю C # и создаю свою первую игру, но столкнулся с проблемой.У меня есть массив Picturebox
PictureBox[] obstacles = new PictureBox[20];
И я пытаюсь объявить в нем 20 новых коробок с картинками случайного расположения.
private void Game_Load(object sender, EventArgs e)
{
player.Size = new Size(20, 20);
player.Location = new Point(20, 240);
player.Image = Properties.Resources.playerImg;
Controls.Add(player);
for (int i = 0; i < 20; i++)
{
obstacles[i] = new PictureBox();
obstacles[i].Size = new Size(10, 10);
obstacles[i].Location = new Point(50, 340);
obstacles[i].BackColor = Color.Red;
Controls.Add(obstacles[i]);
}
}
Я знаю, что это еще не порождает их в случайном месте,но я не буду этого делать, пока не заставлю их вообще появиться.Теперь, когда я пытаюсь создать метод для использования массива picturebox, все его объекты (picturebox [0-19]) просто равны нулю?
private void JustAnOtherTest(PictureBox obj)
{
for (int y = obj.Top; y < obj.Top + obj.Height - 1; y++)
{
MessageBox.Show("Testing out!", "Test");
}
}
Теперь вызывается: JustAnOtherTest (препятствия [1]);и добавление watch для obj в метод JustAnOtherTest просто даст мне ноль, почему это так?
EDIT: похоже, что он никогда не входит в цикл for, потому что он выходит из Game_Load, как только попадает в player.Image =Properties.Resources.playerImg;что, вероятно, означает, что проблема в файлах ресурсов ...: S
EDIT2: Да, я был прав, проблема была в файлах ресурсов.Я испортил некоторые пространства имен, и он не смог найти файл ресурсов, потому что он находился в другом пространстве имен, но я не уверен, почему он не выдал ошибку.Однако после исправления всех пространств имен все работает просто отлично.:)