我是 Java 世界的新手,我开始学习斯坦福 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 类时,“新”画布属性不显示...
我不知道我是否表达得很好,但我试过了,如果有人可以帮助我,我会非常感激?提前致谢。