0

だから私はついに効率的なプログラミングを学び始めました(すべてに1つのクラスを使用するために使用されます)、そして私が作っているこの新しいゲームにはこれまでに次のクラスがあります:

  • GameDriver
  • 地図
  • ブロック
  • プレーヤー

そして今のところ、MapはBlockオブジェクトのArrayListを作成し、GameDriverはMapオブジェクトとPlayerオブジェクトを作成します。これで、すべてが完全に正常に機能しています。しかし今、私は問題に遭遇しました。

checkLand()というメソッドをPlayerに追加し、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のオブジェクトにアクセスできるはずです。また、オブジェクトもクラス内で作成されているため、それも利用可能であるとおっしゃいました。PlayerGameDriverMapGameDriver

あなたができることは、パラメータとしてオブジェクトを受け取り、必要なロジックを実行するメソッドをPlayerクラスに含めることです。Map

これにより、オブジェクトは()をGameDriver持つオブジェクトを呼び出し、(Player)を持つ別のオブジェクトを渡すことができますMap

于 2012-08-22T06:04:27.370 に答える