(-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;