我有一个以 25 像素为增量移动的矩形。当矩形的 x 位置等于 740 时,我需要停止矩形。740 不能除以 25,因此 x POS 永远不会落在 740 上。25 的增量也是动态的,可以从 25-100 开始。问题与语言无关。
鉴于可能无法达到位置 740,而只能通过 +/- 增量近似,您必须考虑到这一点。
因此,测试可能是:
if (x >= 740-increment div 2) and (x <= 740+increment div 2) then... (got)
当然,如果您知道增量,这就可以了。如果没有,则必须使用最大可能的增量。
另一种更长但可能更容易理解的方式是:
if x < 740 then if x+increment >= 740 then... (got)
if x > 740 then if x-increment <= 740 then... (got)
尝试比较这两种方法...玩得开心!
在增加位置变量之前,可以进行检查。
IF currentXpos + increment < 740 THEN
currentXpos = currentXpos + increment;
END_IF
如果您希望该职位至少为 740,只需使用
IF currentXpos < 740 THEN
currentXpos = currentXpos + increment;
END_IF