首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >C++ -如何让移动点连续循环?

C++ -如何让移动点连续循环?
EN

Stack Overflow用户
提问于 2017-01-28 02:26:55
回答 2查看 541关注 0票数 1

我无法让我的移动点程序正常工作。我有一个程序,可以让点向右移动,但是我如何让它们循环回来,让它们看起来像是在连续移动,而不是离开页面呢?我需要编辑的代码块如下所示。我希望有人能帮助我,并再次感谢提前!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void advanceDots(XPoint dots[], unsigned num_dots, XWindowAttributes &w){
  int s = num_dots;
  for(s = 0; s < num_dots; s++){
    if(s < num_dots){
        dots[s].x++;
    }
  }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-28 02:45:18

如果您当前正在“左移”vs“右移”,则需要另一个变量来跟踪。然后当你到达一个边界时交换。

如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bool isMovingLeft = false;

void advanceDots(XPoint dots[], unsigned num_dots, XWindowAttributes &w)
{
  if (isMovingLeft && (dots[0].x <= 0))
  {
      isMovingLeft = false;
  }
  else if (!isMovingLeft && dots[num_dots-1] >= w.width)
  {
      isMovingLeft = true;
  }

  int increment = isMovingLeft ? -1 : 1;
  int s = num_dots;
  for(s = 0; s < num_dots; s++)
  {
      dots[s].x += increment;      
  }
}
票数 3
EN

Stack Overflow用户

发布于 2017-01-28 02:40:44

通常情况下,位置是有某种边界的。我假设它是用XWindowAttributes编写的,只是为了给你举个例子:

要让这些点“回到”开头,而不是“移出页面”,你可以像这样将它们放回原处:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//I dont know the structure of XWindowAttributes so i will define one just for the example!

struct XWindowAttributes
{
    int x_size; // the maximal size of the window in the x direction
};

void advanceDots(XPoint dots[], unsigned num_dots, XWindowAttributes &w)
{
    for(int s = 0; s < num_dots; s++)
    {
        XPoint& dot = dots[s];
        dots.x++;

        if(dots.x >= w.x_size)
        {
            dots.x = 0;
        }
    }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41905774

复制
相关文章
新建移动apn让网速变快(移动apn接入点哪个快)
4G网络可以给我们带来畅快的网速体验,其实我们目前使用的LTE网络根据网速还分为多个标准,标准对4G网络的支持也不太一样,但是有时我们任然可以感觉到在有4G基站的地方上网网速也不是那么的满意,这是怎么回事儿呢?
全栈程序员站长
2022/07/28
8.7K0
新建移动apn让网速变快(移动apn接入点哪个快)
Python|移动石子直到连续
每一回合,我们假设这三枚石子当前分别位于位置 x, y, z 且 x < y < z。从位置 x 或者是位置 z 拿起一枚石子,并将该石子移动到某一整数位置 k 处,其中 x < k < z 且 k != y。
算法与编程之美
2020/05/25
4760
如何提高C++中for循环的效率
1. 不假思索的写法(最为常见,且最耗时) 测试用时:0.000143s clock_t startTime,endTime; startTime = clock(); vector<double> row(100); double sum=0; for(unsigned int i=0;i<1000;i++) { for(unsigned int j=0;j<row.size();j++) {
用户9831583
2022/06/16
1.9K0
C++ 循环
有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。
爱学iOS的小麦子
2023/04/12
4230
1033. 移动石子直到连续
每一回合,我们假设这三枚石子当前分别位于位置 x, y, z 且 x < y < z。从位置 x 或者是位置 z 拿起一枚石子,并将该石子移动到某一整数位置 k 处,其中 x < k < z 且 k != y。
Michel_Rolle
2021/02/23
2.5K0
循环移动数组元素
// 循环移动数组元素 // 一种大部分数据只移动一次的算法 // 方法: // 将数据循环移动, 可以直接计算出每个数据的最终位置, 直接移动即可 // 分析: // 这种算法基本可看做每个数据只需要移动一次 // 但是每个数据移动的位置需要计算, 算法理解起来比较难, 实现也比较复杂 // 另外,由于总是间隔较远存取数据,在数据数量较大的时候会导致比较频繁缓存命中失败 // 常用的两次翻转算法,每个数据需要swap两次(平均每个移动3次),而且很容易理解,实现也简单
全栈程序员站长
2022/09/17
1.4K0
C++如何让自己变得富有?
本篇只是介绍了C++中继承的一部分简单知识,继承的概念,继承的格式,继承方式等, 对于复杂的多继承,菱形继承,下一篇会介绍.
初阶牛
2023/10/14
1500
C++如何让自己变得富有?
LeetCode 1033. 移动石子直到连续
每一回合,我们假设这三枚石子当前分别位于位置 x, y, z 且 x < y < z。 从位置 x 或者是位置 z 拿起一枚石子,并将该石子移动到某一整数位置 k 处,其中 x < k < z 且 k != y。
Michael阿明
2020/07/13
3070
C++循环嵌套
循环的嵌套就是,一个循环体内又包含了另一个完整的循环结构;内嵌的循环中还可以嵌套循环,这就是多层循环。
小林C语言
2020/11/30
1.6K0
C++循环嵌套
C++增强for循环[通俗易懂]
C++ 11有类型自动推导auto关键字,在for循环中可以使用,上面的数组输出可以写成下面这种形式:
全栈程序员站长
2022/07/02
8480
C++循环结构
程序执行顺序,先执行表达式1,验证表达式2是否为真,执行循环体语句,执行表达式3,再验证表达式2是否为真,若为真继续执行上述操作,直至表达式2不成立,跳出循环体,执行后续语句。 特殊用法 for()中可以不加语句也可以添加部分语句,语句不存在时跳过执行,参考while循环。
风骨散人Chiam
2020/10/28
6420
如何让C++字符串更快
std::string firstName = name.substr(0,3);
BrianLee
2023/02/12
7700
两轮差速移动机器人从A点移动到B点的C++语言代码
(⊙﹏⊙)如下同样是AI撰写。 您可以使用两轮差速移动机器人的控制代码来控制它从A点移动到B点。可以使用各种语言,如C,C++,Python等来编写控制代码。 从A点移动到B点的C代码应该是:moveToB(A,C); 差动运动学模型机器人从A点移动到B点的C语言代码是一种基于位置、速度和加速度的控制算法,可以使机器人从A点移动到B点。C语言代码可以实现机器人的路径规划、速度控制和位置控制等功能。 差动运动学模型机器人从A点移动到B点的C语言代码案例可以参考下面的示例: #include <stdio.h>
zhangrelay
2023/02/26
4030
两轮差速移动机器人从A点移动到B点的C++语言代码
实战 | 移动端如何让页面强制横屏
最近公司要开发一个移动端的养成类网页游戏(就是用手点各种按钮最后你会找到一个女朋友=。=),要求横屏显示,不能竖屏。 有经验的你肯定知道,当用户竖屏打开时,提示说你要把手机转过来是在是件很蠢的事情。这时如果用户没开启手机里的横屏模式,还要逼用户去开启。这时候用户早就不耐烦的把你的游戏关掉了。 我先进行了调研,想看有没有现成的api。参考过screen的api以及manifest方法 ,实验结果当然是不行。 那么现在我唯一能想到的解决办法,就是在竖屏模式下,写一个横屏的div,然后把它转过来。 好了我的测试
用户1097444
2022/06/29
4.9K1
实战 | 移动端如何让页面强制横屏
如何让CNN高效地在移动端运行
COMPRESSION OF DEEP CONVOLUTIONAL NEURAL NETWORKS FOR FAST AND LOW POWER MOBILE APPLICATIONS【ICLR 2016】
SIGAI学习与实践平台
2019/03/11
1.1K0
如何让CNN高效地在移动端运行
循环队列---c++版本
原先操作 改进版本: 假溢出 解决方法: 如何实现循环队列 判断循环队列为空 判断循环队列为满 存在问题:队空和堆满的判断条件重复 解决方法: 这里选择第二种方法: 循环队列类的定义 入队操作
大忽悠爱学习
2021/03/11
5580
循环队列---c++版本
DS顺序表--连续操作 C++
插入多个数据的multiinsert(int i, int n, int item[])函数,实现在第i个位置,连续插入来自数组item的n个数据,即从位置i开始插入多个数据。
叶茂林
2023/07/30
1890
数组循环左移 C++
本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a​0​​a​1​​⋯a​n−1​​)变换为(a​m​​⋯a​n−1​​a​0​​a​1​​⋯a​m−1​​)(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?
叶茂林
2023/07/30
1940
如何在Power Pivot中通过添加列计算不连续日期移动平均?
之前我们讲了连续日期的移动平均的求法,那我们这次来看下如果不连续日期如何计算移动平均。
逍遥之
2020/03/24
2.2K0
如何在Power Pivot中通过添加列计算不连续日期移动平均?
滑动窗口循环移动接收数据
缓存区数据循环 缓存区循环读取数据,处理拆包和解包的网络字节流处理示例 取模运算,循环内存 recvLength += m_serialPort.Read(tcmsBuf, (checkIndex+r
sofu456
2020/03/18
9920

相似问题

如何让Uncrustify缩进点连续行?

11

如何让jQuery移动锚点工作?

22

让海龟移动到吉斯点

12

如何让一个setTimeout函数连续循环?

30

连续两个点移动数据标签

36
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文