我想讓我的小行星在我的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