您好,我需要弄清楚如何更改坐标。不是GUI

时间:2013-05-14 23:37:16

标签: c++ coordinates

我正在使用Microsoft Visual C ++ express 2010 我有一个变量: int x,表示视频游戏角色的位置。 (他们当然是Y)  程序循环,每次它改变X几个地方。但必须在0-800之间。当它到达0(它应该是屏幕的边缘)时,它会倒带。

我已经想出每次程序运行时如何更改它们的值,但是我如何确保它保持在0-800范围内的值,并在它到达位置0时倒回它? 并且它完全在Main之外有它自己的功能。 谢谢。

3 个答案:

答案 0 :(得分:2)

x = (x + 800) % 800;

这会使x保持在(0..799)之内。如果您确实需要(0..800),请将800替换为801

答案 1 :(得分:1)

制作方向变量......

int dir = -2;

for(;;) {
    x += dir;
    if( x < 0 || x >= 800 ) {
        dir *= -1;
        x += dir;
    }
}

答案 2 :(得分:0)

首先,目前还不是很清楚你想要什么。当你说“倒带”时,你的意思是再次从另一侧重新开始,或者转身向它的方向移动。

假设第一种,简单(但有点笨拙)的方法是进行比较,当/如果值超出范围,则根据需要进行调整:

x -= increment;
if (x < 0)
   x = 800;

或:

x += increment;
if (x > 800)
   x = 0;

你也可以使用余数运算符,但要使它完全正确可能有点笨拙。当你朝着积极的方向前进时,它是相当直接和简单的,但在负面方向,它不是 - 在这种情况下,负数是完全可能的,因此需要如上所述的简单测试。如果值只是朝着正方向发展,那么你只关心它变得超过限制,它可以正常工作。