当前位置: 首页 > 知识库问答 >
问题:

处理过程中的平稳移动问题4

须原
2023-03-14

我正在写一个程序,让小“鸟”四处移动并跟随你的光标。这些实例不旋转或任何花哨的东西,我有一个非常不寻常的问题。

如果实例位于同一个X级或Y级,它会振荡。我以前遇到过边界和运动的问题,所以我尝试采取类似的方法。

void move() {
    
    if (xPos == mouseX) {
      xPos += 0;
    } else if (xPos < mouseX) {
      xPos += speed;
    } else {
      xPos -= speed;
    }
    
    if (yPos == mouseY) {
      yPos += 0;
    } else if (yPos < mouseY) {
      yPos += speed;
    } else {
      yPos -= speed;
    }

    xPos = (xPos > mouseX) ? xPos - speed : xPos + speed;
    yPos = (yPos > mouseY) ? yPos - speed : yPos + speed;
  }

只有当两个版本同时运行时,移动才会平滑。我尝试过重新排列'

这个代码中有没有我可以删除的部分来阻止它重复出现?

谢谢:)

共有1个答案

夏侯和韵
2023-03-14

当靠近轴心时,鸟需要移动得更少。试试这个:

if (abs(xPos - mouseX) < speed) {
  xPos = mouseX
} else if (xPos < mouseX) {
  xPos += speed;
} else {
  xPos -= speed;
}
 类似资料:
  • 我试着在处理过程中创建平滑的运动,但它现在不起作用,我不知道为什么它不起作用。我是一名编程初学者,所以在解释时不要让我觉得太复杂:)。这个角色现在移动非常缓慢,我不能同时按下多个按钮,如果有人能帮助我,那就太好了。提前谢谢你。 这是主代码页

  • 我希望这段代码能有效地提高方向间转换的平滑度(一次只能使用一个键),这样我就可以使用多个键。问题是,每当我改变方向,“玩家”就会停下来,然后继续朝新的方向前进。我想让“玩家”在两个方向之间平稳过渡,而不必在按下新键之前完全释放活动键。 主要代码: 玩家等级代码: 提前谢谢!

  • 在我的模型中,我有9个不同的服务块,每个服务可以产生9个不同的特性。每种组合都有不同的延迟时间和标准差。例如,特征3在服务块8中需要5分钟的偏差为0.05,但在服务块4中只需要3分钟的偏差为0.1。 我如何永久跟踪每个组合的最后5个需要的次数,并计算平均值(像一个移动平均线)?我想用平均值来让产品根据最短的时间来决定为各自的功能选择哪一个服务块,比较所有机器为各自的功能所做的过去时间。产品代理已经

  • 我能够创建一个简单的球从左上角到右下角的循环,但我不能对从右上角到左下角做同样的操作。请用我在下面使用的简单方法帮助我解决这个问题,这意味着不要使用任何高级变量,只要保持简单即可//如果将重复动画更改为(posX 1)P0,则从左上角到右下角的重复动画工作正常,但从右上角到左下角的重复动画不会发生同样的情况

  • 有人有这方面的经验吗?我正在研究迁移,但是由于我们已经用GCM发布了应用程序,每天有成千上万的用户和成千上万的通知,我不愿意这样做,因为担心会破坏现有的服务。有人顺利过渡了吗? 具体来说,在教程中(https://developers.google.com/cloud-messaging/android/android-migrate-fcm)第一步是“导入谷歌项目”。这是单向操作吗?现有的GCM

  • 对于示例代码,我用200个随机数字的序列替换了文本:在键盘上上下按压时,条形图会滚动,而屏幕的另一半应该显示每次按下R键时随机选择的200个数字中的一个,或者在按下H键时显示一个“你好”的文本。 在一些帮助下,我能够使我的数字正确地显示在屏幕上,但我不确定如何使这两个不同的按键交互工作,我需要在两者之间周旋:随机数和文本。 我试过这样做,但我似乎不能让它在文本部分起作用: