所以我终于开始学习高效的编程(曾经用过一个类),到目前为止我正在制作的这个新游戏有以下几个类:
到目前为止,Map创建了一个Block对象的ArrayList,而GameDriver创建了一个Map对象和一个Player对象,现在这些对象完美无缺。但现在我遇到了一个问题。
我向Player添加了一个名为checkLand()的方法,而GameDriver调用该方法来检查玩家是否可以踩到某个位置,但是为了能够检查它的方法,它需要访问该地图对象。 GameDriver正在使用,所以我尝试了这个:
public class Player(){
GameDriver gameDriver = new GameDriver();
...more declarations
public boolean checkLand(int xCord, int yCord){
if (gameDriver.map.world.get(gameDriver.map.getByCords(xCord,yCord)).type == 1) {
return false;
} else {
return true;
}
}
但显然它不起作用,但我想向你们展示,这样你就可以了解我想要它做什么,我应该在GameDriver中使用checkLand方法吗?我想知道最好的方式:)
答案 0 :(得分:2)
由于Player
对象正在创建GameDriver
对象,因此您应该能够访问Player
类中的GameDriver
对象。另外,您说Map
对象也是在GameDriver
类中创建的,因此也可以使用。
你可以做的是在Player
类中使用一个方法,该方法将Map
个对象作为参数并执行你需要的逻辑。
这将允许您的GameDriver
对象调用它拥有的对象(Player
)并将其传递给另一个对象(Map
)。