【问题标题】:How my Sprite rotate(smooth rotation) of given angle from the current position in andEngine?我的 Sprite 如何从 andEngine 中的当前位置旋转(平滑旋转)给定角度?
【发布时间】:2013-04-16 05:20:27
【问题描述】:

目前我正在使用 andEngine 版本 1 在 android 中创建游戏演示应用程序。

目前我的精灵旋转角度如下代码所示

 aircraft.setRotation((float) rotationAngle);

但是我的精灵每次都从它的初始位置旋转,但我想从它的当前位置而不是它的初始位置旋转。因为在我的游戏应用程序中,精灵以不同的角度反复旋转(很多次)。所以它看起来很糟糕! (每次都有混蛋)所以我想要我的精灵平滑旋转我该怎么做?

我也使用此代码进行平滑旋转,但我仍然没有获得平滑旋转..?

//这是为了让飞机平稳旋转

for (int i = 0; i

_aircraft.setRotation((float) i);

}

【问题讨论】:

  • 如果您没有找到想要的答案,请提供更多您想说的话。
  • 我的精灵图像是水平的从初始位置(从水平)。所以我希望我的精灵应该从它的当前位置而不是它的初始位置旋转。我认为现在它很清楚了。

标签: android andengine


【解决方案1】:

如果我正确阅读了您的问题,这就是您想要的: 每次调用“setRotation”时,您都希望旋转考虑当前旋转加上“rotationAngle”变量指定的额外旋转量。 如果是这种情况,那么解决方案很简单。

代替:

 aircraft.setRotation((float) rotationAngle);

用途:

 aircraft.setRotation((float) (aircraft.getRotation()+rotationAngle));

通过这种方式,您可以随时将飞机旋转一个设定的角度(rotationAngle),并将该角度添加到飞机的当前旋转中。

【讨论】:

  • 如果我们在上面做了那么会发生什么我在这里解释如果在我的情况下飞机.getRotation() + rotationAngle = 90 然后飞机首先移动其当前位置(如水平)然后设置为第 90 个角度如果重复执行此操作,然后看起来每次飞机都会颠簸(设置 0 到 90 度角),所以它不适合。
【解决方案2】:

据我了解你的问题你必须使用

aircraft.setRotationCenter(pCenterX,pCenterY);

使用此方法,您可以将对象旋转到所需的位置。默认旋转点是精灵的中心。

【讨论】:

  • 我想说一件事我的精灵(飞机)一直在运行,所以我们不能为精灵提供旋转中心,否则它将回到旋转点然后旋转,所以它看起来很不好。
  • 您必须使用旋转修饰符,您必须在其中提供当前角度和想要旋转的角度,以便它开始从当前角度旋转到所需角度。如果您希望此操作继续,则用户循环修饰符。
  • 如果您发现我的答案正确,则标记为正确答案。
猜你喜欢
  • 1970-01-01
  • 2019-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-29
  • 2015-05-02
  • 1970-01-01
相关资源
最近更新 更多