2012-08-22 5 views
0

그래서 나는 마지막으로 (모두를위한 하나 개의 클래스를 사용하는 데 사용) 효율적인 프로그래밍을 배우기 시작 했어, 내가 만들고있어이 새로운 게임은 지금까지 다음과 같은 클래스가 있습니다적절한 방법

  • GameDriver
  • 지도
  • 블록 플레이어

그리고 지금의로,지도 블록 개체의 ArrayList를하고 게임을 만들어

  • 드라이버는 Map 객체와 Player 객체를 생성합니다. 이제는 모두 완벽하게 잘 작동합니다. 하지만 지금은 문제가 생겼습니다.

    checkLand()라는 메서드를 추가하고 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 나는이 시도 때문에 사용 GameDriver의 checkLand 메소드? 나는 가장 좋은 방법은 Player 객체가 GameDriver 객체에 의해 생성되는 때문에

  • 답변

    2

    , 당신은 당신의 GameDriver 클래스 내에서 Player 개체에 액세스 할 수 있어야합니다 :) 제발 알고 싶어요. 또한 Map 개체도 GameDriver 클래스 내에 만들어 졌으므로 사용할 수도 있습니다.

    Player 클래스에서 Map 개체를 매개 변수로 사용하는 메서드를 사용하면 필요한 논리를 수행 할 수 있습니다.

    은 ( Player)을 가진 개체를 호출하고 그것에게 그것은 또한이 다른 개체 ( Map)를 통과하여 GameDriver 개체 수 있습니다.

    +0

    완벽하게 작동했습니다. 정말 고맙습니다! 꽤 효율적인 방식으로 이것을 코딩하는 것처럼 들리겠습니까? 아니면 많은 작업이 필요합니까? –

    +0

    @JeremySayers : 나는 정확히 말할 수는 없다. 나는 당신이 그것을 어떻게하려고하는지 정확히 알지 못한다. 즉, ** Design Patterns **, 유용한 웹 사이트 [여기] (http://oodesign.com/)를 살펴 보는 것이 좋습니다. 이러한 패턴을 통해 대부분의 경우 응용 프로그램 디자인을보다 깨끗하고 효율적으로 만들 수 있습니다. – npinti

    +0

    고마워, 내가 그 사이트에 대해 더 많이 이해했으면 좋겠어.하지만 그게 더 많은 것을 배워야한다는 것을 의미한다. –