私は、泡が画面の周りを跳ね返り、ポップするためのポイントを取得してから、再びスポーンするアプリケーションを作成しています。独立して制御できる同一のImageViewをプログラムで作成する
各バブルは、画面上の動きを制御するために使用される速度と方向の整数を除き、まったく同じです。
今のところ、私は "バブル"と呼ばれる単一のImageViewを持っています。次に、私が作成したメソッドrandoms()を実行します。
randoms()
のためのコード:
public void randoms(){
ySpeedRand = new Random();
xSpeedRand = new Random();
yPolarityRand = new Random();
xPolarityRand = new Random();
ySpeed = ySpeedRand.nextInt(5) + 4;
xSpeed = xSpeedRand.nextInt(5) + 4;
yPolarity = yPolarityRand.nextInt(3) + 1;
xPolarity = xPolarityRand.nextInt(3) + 1;
if (xPolarity == 1){
xSpeed*=-1;
}
if (yPolarity == 2){
ySpeed*=-1;
}
}
それから私は、バブルをタップした時にチェックし、私はそれが見えないよう、(randomsを再実行)ブロック、およびそれが見えるようにリスナーを持っています。簡単にあり
final Handler checkHandler = new Handler();
Runnable check = new Runnable() {
@Override
public void run() {
if (bubble.getX()>SCREEN_WIDTH-bubble.getWidth()/2){xSpeed*=-1;}
if (bubble.getX()<0){xSpeed*=-1;}
if (bubble.getY()>SCREEN_HEIGHT-bubble.getHeight()){ySpeed*=-1;}
if (bubble.getY()<bubble.getHeight()/2+barHeight+actionBorder.getHeight()){ySpeed*=-1;}
handler.postDelayed(this, 50);
}
};checkHandler.post(check);
:
これは、気泡の位置を制御するハンドラです:
final Handler handler = new Handler();
Runnable run = new Runnable() {
@Override
public void run() {
bubble.setX(bubble.getX()+xSpeed);
bubble.setY(bubble.getY()+ySpeed);
handler.postDelayed(this, 5);
}
};handler.post(run);
は、そして私は、バブルが画面上に残っているかどうかを確認するために、このコードを使用します単純にこのシステムを拡張してメソッドcreatebubble()を呼び出し、新しいバブルに古いものと同じプロパティを仮定させることができますが、新しく生成されたランダム性があります。
私は100%詰まっていて、何も見つかりません。どんな助けもありがとうございます!