如果x
正在增加。减少y
。
我尝试为x
定义两个变量; x1
和x2
,x1
是原始值,x2
是更改后的值。
int x1,x2,y;
x1 = x2;
if (x2 > x1){ y--;}
但这显然不起作用,因为每1/60fps x1 == x2
因此参数无效。
任何帮助将不胜感激。
谢谢,
奥利弗
编辑:
所以我有一个物体的距离,即x
;
我也有图层的比例,y
;
随着距离的增加,我希望图层的比例减小 随着距离的减少,我希望层的比例增加。
实际应用是,两个物体之间的距离增加,因此层的比例减小,从而缩小,使两个物体保持在层相机内。
我根本不知道如何以此方式表达这一点。
答案 0 :(得分:3)
这会照顾X增加和减少。 我假设:整数,1-1线性关系。 (伪代码) 注意,lastXValue对于上下文是全局的或静态的。
int y; // comes from somewhere
int lastXValue = y;
function callBack(int currentXValue) {
int delta = currentXValue - lastXValue; // Note: can be negative
lastXValue = currentXValue;
y -= delta;
}
我也假设循环在其他地方启动和控制,这个函数从循环中调用。
答案 1 :(得分:2)
您需要使用静态变量来保存函数调用之间的状态。请在http://ee.hawaii.edu/~tep/EE160/Book/chap14/subsection2.1.1.6.html处阅读。
答案 2 :(得分:1)
根据您的修改:
所以我有一个物体的距离, 这是
x
;我也有规模 图层,y
;随着距离的增加,我愿意 喜欢图层的比例 减少。随着距离的减少,我 想要图层的比例 增加。
这听起来像你真正想要的只是找出一种从y
计算x
的方法。可能是这样的:
y = CONSTANT / x;
根据您希望两个变量具有的确切关系选择CONSTANT
,这是y
时x == 1
所拥有的值。