0

所以我终于开始学习高效的编程(曾经使用一个类来做所有事情),而我正在制作的这个新游戏到目前为止有以下类:

  • 游戏驱动
  • 地图
  • 堵塞
  • 播放器

到目前为止,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 方法吗?我想知道最好的方法:)

4

1 回答 1

2

由于Player对象是由GameDriver对象创建的,因此您应该能够在您的类中访问该Player对象。GameDriver此外,您说该Map对象也在您的GameDriver类中创建,因此也可用。

您可以做的是在您的Player类中有一个方法,该方法将Map对象作为参数并执行您需要的逻辑。

这将允许您的GameDriver对象调用它拥有的对象 ( Player) 并将它也拥有的另一个对象( ) 传递给它Map

于 2012-08-22T06:04:27.370 回答