我目前正在开发一个简单的java游戏,代表DOS游戏Gorillas.bas.我正在创建一个arraylist来存储各个建筑物进行碰撞检查等等,但是无论我怎么做,Eclipse都会给我一个错误.这是我为arraylist所得到的.
ArrayList<Rectangle> Buildings = new ArrayList<Rectangle>();
Point build1 = new Point(75,30);
Rectangle building1 = new Rectangle(build1, BUILDING_WIDTH, 150);
Buildings.add(Rectangle building1);
Run Code Online (Sandbox Code Playgroud)
错误在于.add()方法,它告诉我该方法需要一个正文而不是一个分号.这是什么意思?日食不承认.add()吗?
编辑:请求周围的一些代码; 似乎没有任何语法错误.
public double bananaX = 85;
public double bananaY = 292;
public double bananaDX = 1;
public double bananaDY = 1;
public double power = 0;
public double direction = 0;
public double rise;
public double run;
Point start = new Point(0,0);
Point finish = new Point(0,0);`
ArrayList<Rectangle> buildings = new ArrayList<Rectangle>();
Point build1 = new Point(75,350);
Point build2 = new Point(225, 250);
Point build3 = new Point(325, 200);
Point build4 = new Point(425, 200);
Point build5 = new Point(525, 250);
Point build6 = new Point(675, 350);
Rectangle building1 = new Rectangle(build1, BUILDING_WIDTH, 150);
buildings.add(building1);
public void power(Point start, Point finish)
{
int power = 0;
power = (int)start.distanceTo(finish);
}
public void direction(Point start, Point finish)
{
double direction = 0;
rise = (finish.y - start.y)*-1;
run = (finish.x - start.x)*-1;
direction = rise/run;
bananaDX = run/10;
bananaDY = (rise/10);
System.out.printf("rise = %f\nrun = %f\ndirection = %f\n\n ",rise, run, direction);
}
Run Code Online (Sandbox Code Playgroud)
你只需要:
Buildings.add(building1);
由于building1已经是一个Rectangle.您已经在其上方创建了Rectangle对象,因此您只需要使用变量本身,因为它的类型正确.
编辑:您可能还应该重命名Buildings buildings以避免任何混淆.当您使用大写字母命名变量时,它看起来像一个类型而不是变量.
编辑2:根据您提供的代码,您需要buildings.add(building1);在某种方法内部.您应该创建一个初始化方法,如果您想在开头添加它,则在开始时调用它.