日期:2014-05-20  浏览次数:20876 次

(-1)%5该是多少?进来看看我的需求
(-1)%   5   =   -1

我想让一个变量的值在-a到+a之间移动。所以写了如下表达式
[code=Java]this.location.x   =   (this.location.x   +   CFG.SCREEN_WIDTH   /   2   +   distance)   %   CFG.SCREEN_WIDTH   -   CFG.SCREEN_WIDTH   /   2;[/code]

意思是想让自己的位置发生变化,位移量是distance,正为右移,负为左移。如果移出了(-CFG.SCREEN_WIDTH   /   2)~(CFG.SCREEN_WIDTH   /   2)就让它在另一边出来。

事实上的情况是如果移出了右边界它能正常的在左边界出来,可是移出了左边界,就一直向左移,回不来了

------解决方案--------------------
参考系是以左为原点,还是以中间为原点?往左应该+的吧,你想统一公式?那得分条件的吧。
------解决方案--------------------
貌似(-1)%5的确等于-1,不过没关系,你把余数的结果加上除数再取一次余好了

Java code

this.location.x = ((this.location.x + CFG.SCREEN_WIDTH / 2 + distance) % CFG.SCREEN_WIDTH + CFG.SCREEN_WIDTH) % CFG.SCREEN_WIDTH - CFG.SCREEN_WIDTH / 2;