이것은 디자인 질문입니다 ... 이것이 더 일반화 될 수 있다고 확신하지만 어려움을 겪고 있습니다. 게임 오브젝트 상호 작용을위한 디자인이 궁금합니다. 다음은 나의 예제입니다 (2D 퍼즐 플랫폼).
플레이어가 레벨을 진행하려고한다고 가정 해 봅시다. 다른 방향으로 지시 할 수있는 조명이 많이 있습니다. 이 가벼운 물체가 어떻게 상호 작용할 수 있는지에 대한 예는 다음과 같습니다.
- 하나의 조명은 플레이어가 틈새를 넘을 수있는 플랫폼을 투사합니다.
- 하나의 빛은 접촉하는 모든 것의 마찰 계수를 감소시키고 다른 빛은 증가시킵니다
- 하나의 조명은 모든 조명의 효과를 무효화합니다. 이로 인해 조명이 켜져있는 동안 플랫폼이 사라지고 마찰 수정자가 무효화됩니다.
- 기타...
구성 요소 아키텍처를 사용할 때이 문제에 접근하는 가장 좋은 방법은 무엇입니까? 각 주요 객체의 구성 요소는 분명하고 환경에 미치는 영향을 정의하는 명확한 방법입니다. 상호 작용을 "해결"하는 클래스 (그러면 빨리 혼란스러워 보일 수 있음)? 주어진 시간에 상호 작용하는 오브젝트에 대해 결합 된 오브젝트를 작성하기위한 데코레이터 패턴의 일부 사용? 이것에 적합한 데이터 구조?
또한 이러한 상호 작용에 오디오를 연결 하시겠습니까? 오디오를 시스템에 연결하는 것은 가시성 또는 플레이어 이동 / 충돌과 같은 다른 속성을 연결하는 것과 같습니다.
더 많은 구성 요소가 추가됨에 따라 수정 작업이 거의없는 새로운 시스템을 처리 할 수있는 강력한 시스템이 있다면 좋을 것입니다.
기타 정보 : 사용중인 엔진은 IceCream 이라는 XNA 엔진 입니다.