如何在Ludo板中使用Array索引

时间:2013-05-06 21:06:50

标签: java android animation imageview coordinates

我只想使用动画在 Ludo board 中从下到上,从左到右翻译图像(标记)。为此,我采用了每个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"/> 

2 个答案:

答案 0 :(得分:0)

  1. 由于我开发了这个游戏,我假设在掷骰子时,代币会自动移动,这会消除移动硬币的魔力,但如果没有,你想要动画移动触摸然后就可以了。

  2. 我注意到的另一件事是数组的大小 - 应该是64,除非我遗漏了什么。你可以查看我的博客,了解董事会的形象。 http://ravichandranjv.blogspot.in

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

答案 1 :(得分:0)

当您将所有坐标存储在数组中但是使用了错误的方法Math.pow(x,y)时,它将用于x的幂y。因此,您应该使用2-d数组来存储所有坐标。你可以用这个概念来开发这个游戏 -

实施例 -

如果骰子显示“1”,你应该将你的指数增加“1”,并在你的

中传递坐标

TranslateAnimation()方法。

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