首先,我正在编写一个小泡泡点击游戏,在该游戏中,您点击一个泡泡(荷兰语“Bubbel”),所有直接接触弹出泡泡的相同颜色的泡泡都会弹出。
我对一段代码有一点问题,我不知道为什么它一直这样做。这是代码:
public void checkIfNeighbors(int x, int y)
{
bool left = false;
bool right = false;
bool up = false;
bool down = false;
if(x != 0)
left = Bubbels1[x - 1, y].GetType == Bubbels1[x, y].GetType && Bubbels1[x - 1, y].IsAlive;
if(x != 11)
right = Bubbels1[x + 1, y].GetType == Bubbels1[x, y].GetType && Bubbels1[x + 1, y].IsAlive;
if(y != 0)
up = Bubbels1[x, y - 1].GetType == Bubbels1[x, y].GetType && Bubbels1[x, y - 1].IsAlive;
if(y != 11)
down = Bubbels1[x, y + 1].GetType == Bubbels1[x, y].GetType && Bubbels1[x, y + 1].IsAlive;
if (left)
{
pop = true;
checkIfNeighbors(x - 1, y);
}
if (right)
{
pop = true;
checkIfNeighbors(x + 1, y);
}
if (up)
{
pop = true;
checkIfNeighbors(x, y - 1);
}
if (down)
{
pop = true;
checkIfNeighbors(x, y + 1);
}
if (pop)
{
Bubbels1[x, y].IsAlive = false;
}
}
有没有办法让它更快更高效?它也一直产生堆栈溢出,但是当我将“ifs”减少到只有一个“if”时,它不会(即使我的气泡线是 12 个相同的气泡长)
我不知道我做了什么,但它以前以某种方式工作过......