2014-05-11 7 views
-1

나는 디자인 패턴의 어떤 종류를 사용하고 싶습니다하지만 난 가능한 디자인 패턴 내 경주 게임 I에서디자인 패턴 :

의 좋은 지식이없는 내 자바 스윙 게임 내 자동차 공장에 대한 어느 사람들이 다른 속성 (속도, 제동, 조향 입력)을 가진 자동차를 선택할 수 있기를 바랍니다. 그래서 그들이 선택한 자동차가 다르게 행동 할 것입니다. 자동차 이것은 또한 포함

// // class CarHandling 
public class CarHandling implements ICarHandling { 
    private final double ACCELERATION = 100; 
    private final double BRAKING = -200; 
    private final double MAX_STEERING_INPUT = 0.5; 
    ... 

} 

// class Car constructor 
public Car(Point position, ICarHandling carHandling) { 
    this.position = position; 
    this.carHandling = carHandling; 
} 

다른 이미지/텍스처 :

나는 내 자동차 클래스의 사용에 의해 사용되는이 CarHandling 클래스를 얻었다. 나는 자동차 속성 (및 이미지 위치)을 속성 파일에 저장하려고 생각했지만 자바 스윙 게임에 이것을 어떻게로드해야하는지 모르겠다.

답변

2

엔지니어링을 과도하게 초과하지 않으시겠습니까? 나는 여기에 공장을 추가하는 것이 당신의 디자인을 단순화 시키거나 단순하게 만들 것이라고 생각하지 않는다.

사용자가 다른 종류의 자동차를 선택할 때 자동차 생성자에 전달할 다양한 종류의 ICarHandling 구현을 갖는 것으로 충분할 것으로 보입니다.

텍스처를로드 할 위치에 대한 정보가 포함 된 Textures 개체를 추가하여이 디자인을 쉽게 확장 할 수 있습니다. 특정 텍스처를 특정 자동차에 바인딩하지 않으며 다른 핸들링 및 텍스처를 혼합하고 일치시킬 수 있습니다. 두 번째 질문에 대해서는

// class Car constructor 
public Car(Point position, ICarHandling carHandling, Textures textures) { 
    this.position = position; 
    this.carHandling = carHandling; 
    this.textures = textures; 
} 

당신은

난하지만 난 내 자바에이를로드하는 방법을 모르는 정보 파일 속성에 차 속성 (이미지 위치)를 저장하는 생각 스윙 게임.

stardard java 프로젝트 구조를 사용한다고 가정하면 텍스처, 속성 등을 resources 폴더에 저장 한 다음 거기에서로드하십시오.

실제로 Google에서는 완전한 코드 예제로이를 달성하는 몇 가지 쉬운 방법이 있습니다.

+0

좋아, 이것을 살펴 보겠습니다. – 8bitboy