gpt4 book ai didi

ellipse - 以匀速在椭圆路径上移动多个 Sprite

转载 作者:行者123 更新时间:2023-12-02 03:53:51 25 4
gpt4 key购买 nike

我试图在椭圆路径中移动多个 Sprite (图像),使距离(弧距)保持一致。

我试过了

  • 按角度移动每个 sprite 角度,但是这样做的问题是,围绕长轴移动单位角度时移动的距离与围绕短轴移动单位角度时移动的距离不同 - 因此移动的距离不同。

  • 通过统一改变 x 轴来移动 Sprite ,但它再次围绕长轴移动更多。

那么有什么想法可以统一移动 sprite 而不会相互追赶/重叠吗?

其他信息:

  • 它将在 onMouseMove/onTouchMoved 中调用,所以我想它不应该占用大量 CPU。
  • 虽然这是一个一般的算法问题,但是如果有帮助,我正在使用 cocos2d-x

最佳答案

所以这就是我最终做的(为我解决了它):

我将它移动到圆方程中,并将角度增加 1 度。使用 sin/cos(angle) * radius 计算 x 和 y。为了使它成为一个椭圆,我将它乘以一个因子。

因子为 yIntercept/xIntercept。

最后是这样的

FACTOR = Y_INTERCEPT / X_INTERCEPT;

//calculate previous angle
angle = atan((prev_y/FACTOR)/prev_x);

//increase angle by 1 degree (make sure its not radians in your case)
angle++;

//new x and y
x = cos(newangle) * X_INTERCEPT;
y = sin(newangle) * X_INTERCEPT * FACTOR;

关于ellipse - 以匀速在椭圆路径上移动多个 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13495766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com