나는 이것이 매우 간단한 OO 질문이라고 생각하지만 답변을 찾지 못하는 것 같습니다./ 공이로드되는 패널이 게임 패널에 있습니다. 공이 패널 하단에 닿으면 Game Over 메시지가 표시됩니다.GamePanel에서 메서드 호출하기
제가 다루고있는 문제는이 게임에 관한 것입니다. JOptionPane
. 이 클래스에 보관해야한다고 생각하지만 Ball
클래스에서 호출해야합니다. 생성자가 내 게임 패널에서 볼 클래스에서 호출되고 여기에
private void moveBall() {
if (x == panel.getWidth() - size) {
xa -= speed;
} else if (x < 0) {
xa += speed;
}
if (y == panel.getHeight() - size) {
ya -= speed;
} else if (y < 0) {
ya += speed;
}
if (collision()) {
ya = -speed;
y = platform.getY() - DIAMETER;
}
if (y == panel.getHeight() - size) {
// ***Call gameOver here***
}
x += xa;
y += ya;
}
:
다음 내가 (**로 표시) 메소드를 호출 할Ball
클래스의 일부이다
// Constructor to pass a colour and a platform
public Ball(JFrame frame, JPanel panel, Platform platform, Color colour,
int x, int y, int size) {
this.platform = platform;
this.frame = frame;
this.panel = panel;
this.colour = colour;
// Location of the ball
this.x = x;
this.y = y;
// Size of the ball
this.size = size;
animator = new Thread(this);
animator.start();
}
어떻게하면 해당 방법에 액세스 할 수 있습니까?
주 (구조) : 프레임 -> 제어판 -> 볼
감사
내가 설명하지 않은 경우 나 잘 자신을 알려 또는
그래서 그 클래스에서 GamePanel의 새로운 인스턴스를 생성 한 다음 볼 클래스에 해당 클래스의 인스턴스를 만들 필요가 없습니까? – Katana24
GamePanel을 한 번 만들면 원하는 곳에 전달할 수 있습니다. 다시 만들 필요가 없습니다. – Jonatan
자바가 어떻게 작동하는지 실제로 생각할 때 그와 같은 간단한 대답으로 간단한 질문. 끝난. 저 주셔서 고마워. – Katana24