0

Processing を使用してプログラムを作成していますが、Expected TRIPLE_DOT, found ';' が引き続き発生します。. 何が間違っている可能性がありますか?

class Collision {
  Ball ball = new Ball();
  Block block = new Block();
  int ball_xpos;
  int ball_rad;
  int ball_ypos;

  int block_width;
  int block_height;
  int block_control;

    Collision(ball.xpos, ball.rad, ball.ypos, block.width, block.height, block.control){
    //
  }


  void detect_() {
    //not done yet
  }
}

ボール クラス: クラス ボール { int rad = 30; // 形状の幅 float xpos, ypos; // 形状の開始位置

  float xspeed = 2.8;  // Speed of the shape
  float yspeed = 2.2;  // Speed of the shape

  int xdirection = 1;  // Left or Right
  int ydirection = 1;  // Top to Bottom

 Ball() {
     ellipseMode(RADIUS);
    // Set the starting position of the shape
    xpos = width/2;
    ypos = height/2;
  }


  void display() {
    ellipseMode(CENTER);
    ellipse(xpos, ypos, 410, 40);
  }

  void move() {
    // Update the position of the shape
    xpos = xpos + ( xspeed * xdirection );
    ypos = ypos + ( yspeed * ydirection );

    // Test to see if the shape exceeds the boundaries of the screen
    // If it does, reverse its direction by multiplying by -1
    if (xpos > width-rad || xpos < rad) {
      xdirection *= -1;
    }
    if (ypos > height-rad || ypos < rad) {
      ydirection *= -1;
    }

    // Draw the shape
    ellipse(xpos, ypos, rad, rad);
  }
}
4

1 に答える 1

2

コンストラクターのパラメーター名で、ドット ( .) を に置き換える必要があり_ます。そして、それらのパラメータに型を与える必要があります:

Collision(int ball_xpos, int ball_rad, ... so on){
    //
}

を使用するball.xposと、コンパイラは最初のdot ( ) の後にvar-argsを期待します。.ball


Ballしかし、クラス属性でフィールドを初期化するために、クラスの属性を渡したいようですBall。その場合、次への参照である単一のパラメーターを渡す必要がありますBall

Collision(Ball ball) {
    this.ball = ball;
}

しかし、型フィールドもあるのに、クラスにこれらのフィールド ( ball_xposball_ypos)がある理由がまったくわかりません。それらを削除して、上記のコンストラクターで渡された参照への参照を設定するだけです。CollisionBallball

Block型参照についても同じです。Blockのフィールドとクラスのコピーをもう一度持っているだけですBallCollision必要ありません。

于 2013-08-21T17:41:15.590 に答える