我目前正在开发一个简单的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);
错误在.add()
方法上,它告诉我该方法需要一个正文而不是一个分号。这是什么意思? eclipse没有认识到.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);
}
答案 0 :(得分:6)
你只需要:
Buildings.add(building1);
由于building1已经是一个Rectangle。您已经在其上方创建了Rectangle对象,因此您只需要使用变量本身,因为它的类型正确。
修改:您可能还应重命名Buildings
buildings
以避免任何混淆。当您使用大写字母命名变量时,它看起来像一个类型而不是变量。
Edit2:根据您提供的代码,您需要在某种方法中包含buildings.add(building1);
。你应该创建一个初始化方法,如果你想在开始时添加它,就会在开始时调用它。
答案 1 :(得分:3)
不要在Rectangle上加倍。
Buildings.add(building1);