如何比较多个目标的变量值

时间:2016-02-01 08:19:45

标签: java

我刚开始使用java,所以如果我把事情弄糊涂的话,请耐心等待。

无论如何,我想创建一个包含4个不同房间的关卡。我已经完成了它,所以每个房间都是一个单独的对象,它是在主方法中创建的。

我想要做的是将每个房间放在一定大小的水平,如果一个房间与另一个房间重叠,它将返回假。每个房间基本上都是100x100像素的块。

我已经这样做了,通过将(x,y)线分配给房间类中定义的2个变量,每个房间对象在放置时将其存储在关卡上。

但是在放置第二个房间时我遇到了麻烦。如何检查我要放置的第二个房间是否与其他房间重叠?我的理由是你检查所有房间对象中的所有(x,y)变量值,如果它们中的任何一个重叠,它将返回false。但是,我不知道如何引用所有这些变量,如何检查每个房间对象中的变量?

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

将分配到某个地点的房间放在ArrayList中,这样您就可以遍历它们并比较参数。我想一个房间不仅有xy坐标,还有lengthwidth

// using a list of rooms that are placed on level
List<Room> assignedRooms = new ArrayList<Room>();
// create a new room (x, y, width, height)
Room newRoom = new Room(0, 0, 100, 100);
assignedRooms.add(newRoom);
// create further rooms

为了确定房间是否与另一个房间重叠,您最好循环通过其余房间,即您已放置在整个区域内的房间,并检查x和{{ 1}}新添加的房间的坐标与任何其他房间相冲突。

y