0

このような質問をするのは、これで 3 回目くらいです。同様の質問はすべて読んでおり、以前のヘルプは役に立ちましたが、今回はこのアプリに新しい機能を追加したいと思います。ボールを円形に動かすアプリがあります。

次に、ボールを画面上のランダムな場所に配置して、円を描くように動かします。ロジックはほぼ正しいと思いますが、ボールは不規則に飛び回ります - いくら数学をいじっても。コードは以下です。

私が間違っていることを誰かが知っていますか?

public class DrawingTheBall extends View {

Bitmap bball; 

int randX, randY;
double theta;


public DrawingTheBall(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
    bball = BitmapFactory.decodeResource(getResources(), R.drawable.blueball);

    randX = 1 + (int)(Math.random()*500); 
    randY = 1 + (int)(Math.random()*500);
    theta = 45;
}

  public void onDraw(Canvas canvas){
    super.onDraw(canvas);

    Rect ourRect = new Rect();
    ourRect.set(0, 0, canvas.getWidth(), canvas.getHeight()/2);
    float a = 50;
    float b = 50;
    float r = 50;

    int x = 0;
    int y = 0;

    theta = theta + Math.toRadians(2);


    Paint blue = new Paint();
    blue.setColor(Color.BLUE);
    blue.setStyle(Paint.Style.FILL);

    canvas.drawRect(ourRect, blue);

    if(x < canvas.getWidth()){

        x = randX + (int) (a +r*Math.cos(theta));
    }else{
        x = 0;
    }
    if(y < canvas.getHeight()){

        y = randY + (int) (b +r*Math.sin(theta));
    }else{
        y = 0;
    }
    Paint p = new Paint();
    canvas.drawBitmap(bball, x, y, p);
    invalidate();
}

}

4

1 に答える 1