0

ボールがバウンドする回数と色 (ランダムな色を追加した場合) と速度を格納できるオブジェクトで、現在のコードを使用するにはどうすればよいですか。ポインタやヒントは素晴らしいでしょう。私は OOP を初めて使用するので、混乱する可能性があります。前もって感謝します

  float x;
  float y;
  float yspeed = 0;
  float xspeed = 0;
  float balldiameter = 10;
  float ballradius = balldiameter/2;

  void setup() {
  size (400,400);
  background (255);
  fill (0);
  ellipseMode(CENTER);
  smooth();
  noStroke();
  x = random(400);
  y = 0;
  }

  void draw() {
  mouseChecks();
  boundaryChecks();
  ballFunctions();
  keyFunctions();
  }

  void mouseChecks() {
    if (mousePressed == true) {
    x = mouseX;
    y = mouseY;
    yspeed = mouseY - pmouseY;
    xspeed = mouseX - pmouseX;
    }
  }

  void boundaryChecks() {
    if (y >= height - ballradius) {
      y = height - ballradius;
      yspeed = -yspeed/1.15;
    }
    if (y <= ballradius) {
      y = ballradius;
      yspeed = -yspeed/1.35;
    }
    if (x >= width -ballradius) {
      x = width -ballradius;
      xspeed = -xspeed/1.10;
    }
    if (x <= ballradius) {
      x = ballradius;
      xspeed = -xspeed/1.10;
     }
   }

   void ballFunctions() {
   if (balldiameter < 2) {
     balldiameter = 2;
     }
   if (balldiameter > 400) {
     balldiameter = 400;
     }
   ballradius = balldiameter/2;
   background(255); //should this be in here?
   ellipse (x,y,balldiameter,balldiameter);
   yspeed = yspeed += 1.63;
    // xspeed = xspeed+=1.63;
   y = y + yspeed;
   x = x + xspeed; 
   }
  void keyFunctions() {
    if (keyPressed) {
      if(keyCode == UP) {
      balldiameter +=1;
    }
    if (keyCode == DOWN) {
      balldiameter -=1;
      }
    }
   }
4

2 に答える 2

1

あなたはおそらく次のことをしたいと思うでしょう:
という名前の新しいファイルを作成しBall.pde
ます

public class Ball {
    public float x;
    public float y;
    public float yspeed;
    public float xspeed;
    public float diameter;
    public float radius;  

    public Ball(float initial_x, float initial_y, float diam) {
        this.x = initial_x;
        this.y = initial_y;
        this.xspeed = 0;
        this.yspeed = 0;
        this.diameter = diam;
        this.radius = diam/2;
    }

    public void move() {
       // movement stuff here
    }
}

これにより、非常に基本的なBallクラスが提供されます。次のように、メイン スケッチ ファイルでこのクラスを使用できます。

Ball my_ball = new Ball(50, 50, 10);

次を使用してボールメンバーにアクセスできます。

my_ball.xspeed;
my_ball.yspeed;
my_ball.anything_you_defined_in_ball;

これにより、ボールに関連するすべての変数を独自のクラス内に保存できます。複数作成することもできます。

Ball my_ball1 = new Ball(50, 50, 10);
Ball my_ball2 = new Ball(20, 20, 5);
于 2012-11-07T05:01:25.637 に答える
0

処理では、そのために新しいファイルを作成する必要がないことに注意してください。コードは、同じファイル (以下に示す非常に悪い習慣) または IDE の新しいタブのいずれかに移動できます。Processing IDE を使用している場合は、右側の矢印メニューから「新しいタブ」を選択すると、ファイルが作成されます。拡張子は「.pde」です。

于 2012-11-07T16:18:36.653 に答える