Я делаю игру, используя XNA, и часть игры включает в себя сбор капель. У меня есть этот код ниже, который определяет пересечение между характером и пунктом:BackColor не меняется, хотя условия выполняются
//Intersection Code, If the character intersects with the item while the item is showing, run below
if (alive && charRange.Intersects(itemRect))
{
alive = false; //stop showing the item
Inv.ItemGot(); //Call the ItemGot class, which adds the item to the inventory screen
}
Другой класс содержит метод ItemGot()
, и код для этого ниже:
public void ItemGot()
{ // Called from the ItemList class...
// Sets the background color to black when called
btnItems[0] = new Panel();
btnItems[0].BackColor = Color.Black;
}
В основном, когда персонаж пересекает с прямоугольником элемента, цвет btnItems[0]
должен перейти от CornflowerBlue
(который я установил ранее) к Black
. Тем не менее, цвет не меняется, когда метод вызывается, и я не знаю почему. Мой код кажется правильным, и у меня были сверстники, подтверждающие это для меня.
Установили ли вы контрольную точку в 'ItemGot()', чтобы подтвердить, что она вызвана? – Andrew
@Andrew Да, 'ItemGot()' вызывается как btnItems [0] заполняется – demiZe
Вы инициализируете 'btnItem [0]' в 'ItemGot()'. Является ли 'btnItem [0]' равным 'panel 1'? – user3093781