我对 Java 编程很陌生。我目前正在尝试制作一个游戏,其中白球不断出现在屏幕上,用户必须单击并将球拖到画布的右侧以使其消失。我还没有写完代码,但是我的代码一直在让我的 Java 程序崩溃。谁能告诉我我的代码有什么问题以及为什么我的程序不断崩溃?谢谢!
public class BubbleGame extends GraphicsProgram
{
//~ Instance/static variables
private GRect field;
private GRect goal;
private GObject gobj; /* The object being dragged */
private GPoint last; /* The last mouse position */
private RandomGenerator rgen = new RandomGenerator();
//~ Constructor ...........................................................
// ----------------------------------------------------------
/**
* Creates a new BubbleGame object.
*/
public void init()
{
//call method to create regions
CreateRegions();
//add mouse listeners
addMouseListeners();
//loop to add bubbles
while (true)
{
//create a filled bubble
GOval oval = new GOval (100, 100, 50, 50);
oval.setFilled(true);
oval.setColor(Color.WHITE);
add(oval);
//randomly generate coordinates within the field
//add the bubble and pause
}
}
//~ Methods ...............................................................
public void CreateRegions(){
//create and add the field with the size and color of your choice
field = new GRect(0, 0, getWidth() * .75, getHeight());
field.setFilled(true);
field.setColor(Color.GREEN);
add(field);
//create and add the adjacent goal with the size and color of your choice
goal = new GRect(493, 0, getWidth() * .25, getHeight());
goal.setFilled(true);
goal.setColor(Color.BLACK);
add(goal);
}
/* Called on mouse press to record the coordinates of the click */
public void mousePressed(MouseEvent e) {
last = new GPoint(e.getPoint());
gobj = getElementAt(last);
//later add check that not dragging field or goal
}
/* Called on mouse drag to reposition the object */
public void mouseDragged(MouseEvent e) {
if (gobj != null) {
gobj.move(e.getX() - last.getX(), e.getY() - last.getY());
last = new GPoint(e.getPoint());
}
}
/* Called on mouse drag to reposition the object */
public void mouseReleased(MouseEvent e) {
//if gobj has a value and its coordinates are contained by goal, make it invisible
}
}