我正在尝试用Java编写一个小游戏,摇摆不定,我无法找到解决问题的好方法。我有两个数组,第一个是Crate对象
public class Crate {
private static ImageIcon crate = new ImageIcon(Player.class.getResource("/Images/crate.jpg"));
private int x=0;
private int y=0;
private static int Xdisplacement;
private static int Ydisplacement;
private int id;
//getters and setters n stuff
第二个是Tile对象。
public class Tile {
private static ImageIcon tile = new ImageIcon(Player.class.getResource("/Images/tile.jpg"));
private int x=0;
private int y=0;
private boolean hasBox=false;
//getters and setters n stuff
我想检查是否所有Crate都放在Tiles上。我的意思是哪个盒子在哪个瓷砖上,几个盒子,几个瓷砖,并且每个盒子应该放在一个瓷砖上,无论哪个盒子放在哪个瓷砖上都无关紧要。在游戏中,玩家走动并移动板条箱,因此他们的坐标会改变。瓷砖电线不会改变(如果有帮助的话)。这将是我的停止条件。当板条箱放置在瓷砖上时,游戏结束了。 我想在另一个循环中进行循环,然后检查每个单个对象的每个字段都不是一个好的解决方案?那么还有其他方法吗?
答案 0 :(得分:1)
完整的设计超出了StackOverflow的范围,但您可能希望使用model-view-controller模式,如图here所示。答案包括一个非常简单的示例游戏,并引用一个更复杂的游戏,涉及平铺网格上的玩家。
附录:在移动后检查网格占用者的特定情况下,引用的示例使用嵌套循环来检查方法RCModel#moveBots()
中的副本的当前状态。