2011-03-02 5 views
0

게임 루프가있는 게임 응용 프로그램을 구축 중입니다. 그래서 업데이트/그리기 작업으로 게임 개체를 갖게 될 것입니다. 구성이나 상속이 여기에 적용 할 수있는 가장 좋은 방법인지 또는 다른 디자인 패턴인지 궁금합니다. 또한 게임 오브젝트가 작동하는 영역에서 본격적인 게임 오브젝트를 만들어야하는지 궁금합니다. 예를 들어 사람이나 자동차와 같은 게임 개체가 있고 내부에 마당과 같은 영역이 있다고 말하면 마당 자체를 게임 개체로 모델링해야합니까? 또 다른 예제는 내가 권투 게임을했다면, obviosly 내가 fighers 게임 개체를 만들 것입니다 반지는 캔버스 수 있지만 링도 풀 스케일 개체가되어야합니까? 로프를 때리는 전투기를 예로 들자면? 그렇다면 어떻게 업데이트/렌더링 인터페이스가 달라질 것입니다. 어떻게 내부/외부 지역/반지를 표현하겠습니까? 아니면 영역 밖으로 게임 개체를 만드는 것이 좋지 않은가요? 전에 이런 종류의 것을 모델링 한 사람으로부터 소식을 듣고 싶었습니다.게임 루프에서 게임 개체의 디자인 패턴

+3

"올바르게"게임을 디자인 할 수있는 100 가지 방법이 있으므로 투표를 종료하겠습니다. 또한 충돌 감지 및 위치 업데이트를 처리하는 방법을 묻는 것처럼 보입니다. 이는 디자인과 완전히 별개의 질문입니다. 조언은 - 게임 코딩을 시작하기 만하면 특정 것에 집착하면 돌아와서 도와 줄 수 있습니다. 그때까지 : 읽기 및 코드, 읽기 및 코드. –

+0

다니엘 없음. 나는 코드에 무릎을 깊이 닿지 않기를 원한다. 나는 게임 요소를 모델링하는 최선의 방법을 앞당겨 볼 것입니다. 그래서 제가 알아 내려고하는 것은 무언가를 일류 게임 객체와 지역을 만드는 기준은 무엇입니까? – PostScripting

+0

그리고 Daniel 당신은 1 명의 담당자가있어서 당신은 그것을 닫을 수 없습니다. – PostScripting

답변

0

내 의견 : draw(), update()와 같은 모든 주요 속성을 가진 간단한 게임 개체를 정의하려고합니다. 예를 들어 모든 개체가 추가해야하는 간단한 충돌 게임을 만들고 싶다면 checkCollision (GameObject other) 및 double x, y, r과 같은 함수입니다. 이제이 클래스에서 쉽게 상속받을 수 있고 공, 사람, 괴물을 만들 수 있습니다 ... 그리고 게임 객체로 그들을 각각 분리하지 말라. 다른 충돌 영역과 같은 좀 더 복잡한 것을 만들고 싶다면, Area와 checkCollision (GameObject other)을 가지고있는 gameObject 클래스와 같은 생각을하고 이것을 다시 상속 받아서 자신의 영역을 정의하고 모든 것을 게임 객체로 참조하십시오. 많은 오픈 소스 자바 게임 경연 대회를 할 수 있으며 게임을 어떻게하는지 확인하고이를 통해 배울 수 있습니다. 행운을 비네.

3

이 질문은 아마도 GameDev.StackExchange.com에 더 적합 할 것입니다. 어쨌든 구성이 더 유지하기 쉬운 옵션 인 것처럼 보입니다. Evolve your Hierarchy은 이와 관련하여 일반적으로 참조되는 기사입니다. 지역/지역의 경우, 이는 설명하는대로 충돌 감지에 사용되는 객체 일뿐입니다.

경기장 객체에는 렌더링 구성 요소와 충돌 감지 구성 요소가 있습니다. "지역"객체가 필요 없으며 사용자가 원하는대로 객체를 인스턴스화하기 만하면됩니다. 모든 로프가/링 진입/링 이탈 논리는 충돌로 탐지 된 경기장 및 전투기의 충돌 구성 요소, 두 객체에 충돌이 전달되고 두 객체가 해당 충돌에 응답하는 것을 기반으로합니다.

관련 문제