1

我只想使用动画在Ludo 板上从下到上、从左到右翻译图像(令牌) 。为此,我已经从每个标记(红色、蓝色、黄色、绿色)将移动的每个 ImageView 的坐标中获取了坐标,但现在我被卡住了;接下来我该怎么做?我是 Android 动画的新手。我怎么能那样做?

这是我的数组索引代码:

public void onCreate( Bundle savedInstanceState ) {
    super.onCreate( savedInstanceState );
    setContentView( R.layout.start );
    double aPowersOfTwo[] = new double[60];
    aPowersOfTwo[0]=Math.pow(81,263);
    aPowersOfTwo[1]=Math.pow(50,262);
    aPowersOfTwo[2]=Math.pow(50,231);
    aPowersOfTwo[3]=Math.pow(80,227);
}

我的黄色令牌的Java代码是

switch(rand.nextInt(6) + 1)

    {
    case 1:

        diceImage.setImageResource(R.drawable.dice_one);
        yellowToken.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                switch(v.getId()){
                case R.id.yellow_token9:
                    Animation animation = new TranslateAnimation(0,80,0,48);
                    animation.setDuration(1500);
                    animation.setFillAfter(true);
                    yellowToken.startAnimation(animation);
                    yellowToken.setVisibility(0);


                    break;
            }   
        }});

    case 2:
        diceImage.setImageResource(R.drawable.dice_two);
        Log.d("dice", "2");
        break;
    case 3:

        diceImage.setImageResource(R.drawable.dice_three);
        Log.d("dice", "3");
        break;

    case 4:

        diceImage.setImageResource(R.drawable.dice_four);
        Log.d("dice", "4");
        break;
    case 5:

        diceImage.setImageResource(R.drawable.dice_five);
        Log.d("dice", "5");
        break;
    case 6:

        diceImage.setImageResource(R.drawable.dice_six);
        yellowToken.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                switch(v.getId()){
                case R.id.yellow_token9:
                    Animation animation = new TranslateAnimation(0,80,0,48);
                    animation.setDuration(1500);
                    animation.setFillAfter(true);
                    yellowToken.startAnimation(animation);
                    yellowToken.setVisibility(0);
                    break;
            }
        }});  

我的xml代码是

<ImageView
android:id="@+id/yellow_token9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="45dp"
android:layout_marginTop="222dp"
android:clickable="true"
android:background="@drawable/yellow"/> 
4

2 回答 2

0

当您将所有坐标存储在数组中但您使用了错误的方法 Math.pow(x,y) 时,它用于 x 的 y 次幂。所以您应该使用二维数组来存储所有坐标。这样做之后,您可以用这个概念来开发这个游戏——

例子-

如果骰子将显示“1”,您应该将您的索引增加“1”并且该坐标通过您的

TranslateAnimation() 方法。

然后根据索引号将它们移动到正确的位置。

于 2013-05-20T20:28:41.910 回答
0
  1. 由于我开发了这个游戏,我假设在掷骰子时,代币会自动移动,这将带走移动硬币的魔力,但如果不是这样,并且你想在触摸时为移动设置动画,那就没关系了。

  2. 我注意到的另一件事是数组的大小——除非我遗漏了什么,否则应该是 64。您可以查看我的博客以获取该板的图像。http://ravichandranjv.blogspot.in

如果您使用 imageView 作为令牌,您可以使用也具有动画可能性的拖放功能吗?当然,如您所知,鉴于您对问题的看法有限,除非您有明确的答案,否则很难为您提供现成的代码。

于 2013-05-06T21:50:58.690 回答