你好,我需要弄清楚如何改变坐标.而不是GUI

Hello, i need to figure out how to change coordinates. not a GUI

本文关键字:坐标 改变 GUI 弄清楚 何改变 你好      更新时间:2023-10-16

我使用的是Microsoft visual c++ express 2010我有一个变量:Int x表示电子游戏角色的位置。(当然是Y)程序循环,每次它都会改变X的几个位置。但必须在0-800以内。当它到达0(应该是屏幕的边缘)时,它会倒带。

我已经弄清楚了如何在每次程序运行时改变它们的值,但是我如何确保它在0-800范围内保持其值,并在到达位置0时倒带它?它在Main之外完全有自己的功能。谢谢你。

x = (x + 800) % 800;

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

设置方向变量…

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

首先,您想要什么并不十分清楚。当你说"倒带"时,你是指从相反的一边重新开始,还是转身回到它来的方向?

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

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

或:

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

也可以使用余数运算符,但要完全正确地使用它可能会有点笨拙。当你在正方向上时,它是相当直接和简单的,但在负方向上,它不是——在这种情况下,一个负数是完全可能的,所以需要像上面这样简单的测试。如果值只在正方向上,所以你只关心它是否大于极限,它可以正常工作。