0
私はBlueJでプログラムしようとしているゲームでいくつかの問題を抱えています。これまでのところ、私はボールが跳ね返り、パドルが私のマウスで動き回ることができます。私はボールを基本的にパドルから跳ね返ろうとしています。移動するパドルのボールをバウンスする方法
私は3つのクラスを持っていますが、私はその長いことを知っていますが、実際にはいくつかの助けを使うことができます。
public class MAIN {
public void begin(){
Paddle = new Paddle(140,400,100,canvas);
ball = new Ball (180,50,canvas, Paddle)//ball can recognize paddle
}
public void onMousemove (Location p){
Paddle.move(p);
}
}
public class Paddle {
public Paddle (int x, int y, int s, DrawingCanvas c){
((JDrawingCanvas)c).setBackground(Color.green);
paddle = new FilledRect(x,y,s,10,c);
}
public void move (Location p){
paddle.moveTo(p.getX(),p.getY());
} //paddle, and to move paddle
}
public class Ball {
Drawing Canvas myCanvas;
FilledRect paddle;
FilledOval ball;
int dx = 3, dy = 5;
public Ball (int x, int y, int s, DrawingCanvas c, Paddle paddle){
myCanvas = c
((JDrawingCanvas)c).setBackground(Color.green);
ball = new FilledOval (x,y,s,s,c);
pad = paddle;
start();
}
public void run() //bounces the ball around
{
while(true){
if(ball.getX() <0 ||ball.getX() > myCanvas.getWidth()){
dx = dx;
}
if(ball.getY() <0 ||ball.getY() > myCanvas.getWidth()){
dy = dy;
}
move5();
pause(20);
}
public Rectangle getRectangle(){
return new Rectangle ((int)paddle.getX(), paddle.getY(),
paddle.getWidth(), paddle.getHeight();
}
public boolean collision (Ball p){
return getRectangle().intersects(p.getRectangle());
}
public void move5(){
ball.move(dx,dy)
}
public void collide(){
dx= -dx
dy=-dy
}
}
ボールがパドルに接触しているかどうかを検出するために、画面の両側に使用されている同じ衝突検出を使用することができます。 –