Как поделиться тем же GCanvas в GraphicsProgram в Java?
Я новичок в мире Java, и я начал изучать курс Stanford cs106A. Я сделал проблему "прорыва", которая заключается в создании простой игры прорыва. Я хочу пойти еще дальше, и моя цель - создать новые классы, которые могут включать объекты в GCanvas основного класса.
Итак, теперь у меня есть что-то вроде этого:
public class Breakout extends GraphicsProgram {
//...
public void run();
private void playGame();
private void checkForPaddleCollisions();
private boolean passedBorderline();
private boolean moreBricksRemainig();
private void checkForCollisions();
private void updatePuntuation(GObject obj);
private void changeDirection(int temp);
private GObject getCollidingObject(double x, double y);
private void moveBall();
private void checkForBounderies();
private boolean hitsLeftWall();
private boolean hitsRightWall();
private boolean hitsRoof();
private void setRandomVx();
private void setBall();
private void setUp();
private void setLabels();
private void setPaddle();
public void mouseDragged (MouseEvent e);
public void mousePressed(MouseEvent i);
private void placeBricks();
private GOval ball;
private GRect paddle;
private GLabel win, lose, lifes, puntuationLabel;
private GPoint last;
private double vx, vy = 3.0;
private RandomGenerator rgen = RandomGenerator.getInstance();
private int Delay = 50;
private int counterBricks = NBRICKS_PER_ROW * NBRICK_ROWS;
private AudioClip bounceClip = MediaTools.loadAudioClip("bounce.au");
private int noPaddleBugs = 0;
private int puntuation = 0;
private int actualPunt = 0;
}
Это основной класс игры. Что я хочу сделать, это создать новый класс с именем PowerUps
, Этот класс может поместить любой объект в GCanvas
Объект основного класса в любой точке игры. Я пытался получить доступ к GCanvas
основного класса, говоря что-то вроде Breakout."canvasproperty".add(newObject)
, но кажется, что это не разрешено.
Затем я подумал: я могу создать класс, который расширяет GCanvas, а затем инициализировать открытое свойство в основном классе этого "нового" холста. С помощью этого метода я могу вставлять новые объекты в этот холст из внешних классов, но проблема в том, что при запуске класса Breakout свойство "new" canvas не отображается...
Я не знаю, выразил ли я себя хорошо, но я пытался, если кто-нибудь может мне помочь, я был бы очень благодарен? Заранее спасибо.