我想让我的小行星在我的android游戏中constatly旋转,但我完全不知道从哪里开始。光滑的位图旋转android SurfaceView
我知道我可以旋转画布,但是我无法找到一个数学公式,画布以任意角度旋转后绘制对象的位置,以便在恢复画布之后它应该在哪里。
我的意思是我计算出只有90,180,270度,你能帮我一下吗?我只需要一个提示。
感谢您的帮助!
编辑:我终于只是canvas.rotate()
我想让我的小行星在我的android游戏中constatly旋转,但我完全不知道从哪里开始。光滑的位图旋转android SurfaceView
我知道我可以旋转画布,但是我无法找到一个数学公式,画布以任意角度旋转后绘制对象的位置,以便在恢复画布之后它应该在哪里。
我的意思是我计算出只有90,180,270度,你能帮我一下吗?我只需要一个提示。
感谢您的帮助!
编辑:我终于只是canvas.rotate()
您可以使用内置的android.R.anim.linear_interpolator
从动画XML文件android:interpolator="@android:anim/linear_interpolator"
,你可以使用它像这样的东西想通了:
<?xml version="1.0" encoding="UTF-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="3000"
android:fromDegrees="0"
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:toDegrees="359" />
用java:
//Rotate Asteroids
ImageView mAsteroids = (ImageView) findViewById(R.Id.Asteroids);
mAsteroids.setDrawingCacheEnabled(true);
rAnim = new RotateAnimation(0.0F, 359.0F, Dimension.RelativeToSelf, 0.5F, Dimension.RelativeToSelf, 0.5F);
rAnim.Interpolator = new LinearInterpolator();
rAnim.RepeatCount = Animation.Infinite;
rAnim.Duration = 1500; //<-- you duration
mAsteroids.StartAnimation(rAnim);
采用了矩阵API的考试ple Matrix.mapPoints – pskink 2014-09-25 09:29:06