Как поделиться тем же 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 не отображается...

Я не знаю, выразил ли я себя хорошо, но я пытался, если кто-нибудь может мне помочь, я был бы очень благодарен? Заранее спасибо.

0 ответов

Другие вопросы по тегам