2010-07-14 2 views
1

이 기능은 다양한 기능을 갖춘 많은 캐릭터가있는 게임 프로그래밍에서 매우 일반적인 문제라고 생각합니다.다양한 특성을 가진 많은 객체를 정의 할 때 코드 중복을 피하는 방법은 무엇입니까?

큰 코드 블록을 공유하기 위해 객체가 필요할 때 가능할 때마다 문자에 대한 작업을 정의하고 상속하는 프로토콜을 사용하고 있습니다. 프로토콜의 문제점은 인터페이스 만 정의하기 때문에 구현은 종종 중복 코드입니다. 이 문제에 대한 더 나은 접근 방법이 있습니까, 아니면이 경우에 일부 코드는 코드 중복이 허용됩니까? Objective-C에는 다중 상속이 없으므로 문제가되지 않습니다.

답변

3

이것은 게임 디자인에서 상속되는 일반적인 문제입니다. 대신 components을 사용해보세요. 구성 요소 기반 시스템을 구현하는 여러 가지 방법이 있지만 일반적으로 게임 엔터티는 구성 요소의 컨테이너이며 다른 엔터티에 대해 구성 요소를 쉽게 다시 사용할 수 있습니다. 여기에 몇 가지 더 많은 자원은 유용 할 수 있습니다

+0

저는이 구성 요소 아이디어에 상당히 익숙합니다. 훌륭한 읽을 거리! – Morrowless

1

"나는이 게임에서 매우 일반적인 문제가 될 생각합니다 프로그래밍 많은 재치를 가지고 프로그래밍 다양한 기능. "

아니요, 일반적으로 없습니다. 일반적으로 우리는 Character 클래스를 만들고 다른 메서드 또는 상호 작용 클래스를 통해 다른 동작을 구현하는 반면 게임의 각 문자에 대해 새로운 클래스 또는 형식을 만드는 것처럼 들립니다. 격렬하게 다른 동작이있는 경우 다른 언어로 작성된 스크립트에 해당 동작을 넣는 것이 일반적입니다. 서로 다른 기능의 많은 순열은 본질적으로 데이터 문제이며 코드 문제는 아닙니다.

관련 문제