0

私は簡単なゲームをしています..雪が下に移動し、ペンギンが下のレイアウトになっています..ペンギンが雪が降るのを防ぐ必要があります

そして、クリックしたときにimageview(雪の写真)を破壊する方法をお聞きしたいと思います。私が設定した:

 lebah2.setVisibility(View.GONE);

しかし、それはただ隠れているだけです。なぜなら、衝突をチェックするタイマーを作成するからです。ペンギンとの雪の衝突の場合、ライブはマイナス1になります。このコードを入力すると、タイマーは常にライブを減らします。

for(int awal = 1 ; awal<=akhir; awal++)
                                    {
                                        ImageView lebah2 = (ImageView) findViewById(awal);
                                        int atas = lebah2.getTop();
                                        int left = lebah2.getLeft();
                                        if(atas >=180)
                                        {
                                            if(left >180 && left <240)
                                            {
                                                data.live--;
                                                 TextView nyawa = (TextView) findViewById(R.id.live);
                                                 nyawa.setText(String.valueOf(data.live));
                                                 lebah2.setVisibility(View.GONE);
                                            }
                                        }

私は何をしなければなりませんか?

4

2 に答える 2

2

次のようにビューを削除できます。

((LinearLayout)lebah2.getParent()).removeView(lebah2);

ビューが表示されていない場合は、ループをスキップすることもできます。

if(iv.getVisibility() == View.VISIBLE) {
   for(int awal = 1 ; awal<=akhir; awal++) {
      //Check if collision
   }
}
于 2012-06-05T09:14:18.433 に答える
0

可視性を GONE に設定しても、ビューは削除されません。たとえば、親のすべての子を取得すると、ビューがカウントされます。

これを使って:

 ImageView lebah2 = (ImageView) findViewById(R.id.lebah2);

((RelativeLayout)lebah2.getParent()).removeView(lebah2);
于 2012-06-05T09:14:56.010 に答える