问题描述:
在学习Unity初级案例炸弹人时,当取地图上的空位置点时,出现InitMap(2,2)
取值不正确的情况。
程序获取的空位置点数
空位置图如下:
从图中可以看出空位置点数应为21,但控制台显示是19,经检验知道最右边一列的空位置点(1,0)
,(1,-2)
没有被计算在内。
问题原因:
在C#中,当x=1,X=2时,(-(X + 1)) % 2 == x % 2
并不相等,(-(X + 1)) % 2
的值为 -1 , x % 2
的值为 1 .
解决:
使用绝对值函数abs()
后再进行比较,即
if (Mathf.Abs((-(X + 1)) % 2) == Mathf.Abs(x % 2))
{
......
}