0

Androidでホイールを回すゲームを作ろうとしています。円を正しい方法で回転させるのは難しいと思います。毎回異なる結果が得られるように、円を回転させて停止する方法を教えてください。その時点で規定回数回転し、最初に戻ります。この msmallWheelBack.clearAnimation() で途中で止まると、ラウンドの最初に戻ります。よろしくお願いいたします。

私のコードでは:

    Animation animation = AnimationUtils.loadAnimation(this, R.anim.rotate_around_center_point);
    mframeWheelBig.startAnimation(animation);

アニメーション xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<rotate
    android:duration="2500"
    android:interpolator="@android:anim/linear_interpolator"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatCount="infinite"
    android:toDegrees="360"
    android:fromDegrees="0"
    android:fillAfter="true"
    android:fillBefore="true"
    android:fillEnabled="true"/>
</set>

そして、私が言ったように、これがアニメーションを停止する方法です

    mframeWheelBig.clearAnimation();
4

1 に答える 1

0

「toDegrees」のランダムな値をプログラムで設定できます。より多くのスピンを得るために、360 度以上に設定することもできると思います。

ただし、その値の設定メソッドが見つからなかったので、を使用してプログラムでアニメーションを作成する必要があると思いますがRotateAnimation、それでも非常に簡単に作成できるはずです。

これは 3 ~ 6 回転し、任意の角度で停止できます。

final static int MIN_TURNS = 3;
final static int MORE_TURNS = 3;
float toDegrees = 360 * MIN_TURNS + Math.random() * 360f * MORE_TURNS;
Animation anim = new RotateAnimation(0, toDegrees);
于 2015-10-14T09:31:06.883 に答える