老师的源码里判断是否是门的函数里 为什么xy坐标要反过来设置
如图 箭头的地方 为什么会把坐标的xy值反过来放,而且我发现用YX可以正常运行,而用XY不能正常运行 这是为什么
如图 箭头的地方 为什么会把坐标的xy值反过来放,而且我发现用YX可以正常运行,而用XY不能正常运行 这是为什么
2016-03-16
因为源代码中建立Map的时候是以纵方向为X轴,横方向为Y轴的,也就是二位数组中第一个数代表第几行,第二个数代表第几列。
第一个if语句段是检查左右两边是否到达边界( 在如果人在地图中达到边界,即旁边没有墙,所以这是一个门),左右达到边界即检查二维数组的第二个数是否为边界值(最大或者最小)。第一个if语句段中,老师使用的是mazeX作为变量,mazeX是positionX传入的,positionX是人的横坐标,依旧是y轴左边。
所以并不是老师把xy反过来放,而是老师写的时候对于xy的是横还是纵因为某种原因在写Map和人的时候搞混了,所以造成这个需要人和地图同时用到的时候需要反着写(只是表面看起来是反的),如果你仔细看老师判断是否撞墙的checkWallOrNot()函数里面也是这样表面上是反着写的。。。
第二个if语句段的原因相同,不详述了。如果第一个看懂,但还是不明白第二个的话。。。我也没办法。
举报