-3

我有一种情况,我有一个以 25 像素为增量移动的矩形。当矩形的 x 位置等于 740 时,我需要停止矩形。740 不能被 25 整除,因此 x 位置永远不会落在 740 上。这个 25 的增量也是动态的,可以在 25-100 之间。问题与语言无关。

4

2 回答 2

0

可能在增加位置变量之前实施检查。

    IF currentXpos + increment < 740 THEN
       currentXpos = currentXpos + increment;
    END_IF

如果您希望位置至少为 740,只需使用

    IF currentXpos < 740 THEN
       currentXpos = currentXpos + increment;
    END_IF
于 2019-05-22T21:55:38.083 回答
0

鉴于有可能无法到达位置 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)

尝试比较这两种方法……玩得开心!

于 2018-05-10T09:19:39.183 回答