你好,我需要弄清楚如何改变坐标.而不是GUI
Hello, i need to figure out how to change coordinates. not a GUI
我使用的是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;
也可以使用余数运算符,但要完全正确地使用它可能会有点笨拙。当你在正方向上时,它是相当直接和简单的,但在负方向上,它不是——在这种情况下,一个负数是完全可能的,所以需要像上面这样简单的测试。如果值只在正方向上,所以你只关心它是否大于极限,它可以正常工作。
相关文章:
- QGraphicsPolygonItem在拖动时未更新QPolygonF坐标
- 变量没有改变?通过向量的函数调用
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- 如何改变c++应用程序的视觉效果
- C++在不同线程中改变向量
- 如何访问和改变存储在矢量C++中的对象
- 在C++行尾写一个分号或多个分号是否会改变任何内容
- 为什么字符串的 move() 会改变内存中底层数据的位置?
- 为什么 c++ 动态数组的大小没有改变?
- OpenGL 4.3 错误地将第 4 个纹理坐标映射到与第 3 个纹理坐标相同的位置
- 为什么提升图库的 read_graphviz() 函数会改变节点的索引
- 在向量内更改变量的值不会改变其在向量外的值
- 比较两个节点坐标的最佳方法是什么?
- 在 OpenGL 中将笛卡尔世界坐标转换为球面局部坐标
- 为什么 GCC 不能假设 std::vector::size 在这个循环中不会改变?
- SDL2 OpenGL窗口缩小和改变鼠标坐标
- 你好,我需要弄清楚如何改变坐标.而不是GUI
- 在openGL中改变三角形坐标
- 如何改变XYZ坐标到另一个2D系统