主题:  对flash mx的puzzle教程的代码不明白,请帮忙

ifaye

职务:普通成员
等级:1
金币:0.0
发贴:8
#12002/4/4 14:52:24
function Snap(whichPiece) {
if (whichPiece._x>40 && whichPiece._x<320 && whichPiece._y>40 && whichPiece._y<320) {
var xSnapNumber = Math.floor((whichPiece._x-20)/40);
var ySnapNumber = Math.floor((whichPiece._y-20)/40);
if (((whichPiece._x-20)%40)/40<.5) {
whichPiece._x = xSnapNumber*40+20;
} else {
whichPiece._x = (xSnapNumber+1)*40+20;
}
if (((whichPiece._y-20)%40)/40<.5) {
whichPiece._y = ySnapNumber*40+20;
} else {
whichPiece._y = (ySnapNumber+1)*40+20;
}
}
}
这段代码怎样理由啊?



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#22002/4/8 21:56:53
确定目标的吸附范围,并吸附到确定的位置。

关于吸附的算法,最好自己研究。一个方法是代一个值进去,在大脑中做“单步调试”



5D荣誉斑竹

职务:普通成员
等级:2
金币:2.0
发贴:617
#32002/4/9 20:39:57
做这种“吸附”算法,要一下子考虑周全,得费点脑子