Gregory Weir의 대답은 여러 역할을 수행하기 위해 항목 인스턴스를 구성하는 방법에 대해 제가 가장 좋아하는 것입니다.
파일에서로드하려면
먼저 YAML을 사용하십시오. YAML은 유용한 데이터 기술 언어입니다. 비교적 빠르게 구문 분석하고, 사람이 읽고 편집 할 수 있으며, 이진 데이터를 지원하며, Java를 포함한 대부분의 프로그래밍 언어에 라이브러리가 존재합니다. 이것은 "파일에서 객체로 데이터를 얻는 방법"을 해결합니다.
둘째, 플라이급 패턴을 사용하십시오 . 해당 파일에서 읽은 대부분의 데이터는 정적입니다. 인스턴스별로 변경되지는 않습니다 ( "도끼는 1d10의 기본 피해를 입히고 나무는 부수지만 돌은 부수 지 않습니다"). 이것은 플레이어가 가진 5 개 축 모두에 해당합니다. YAML 파일에서 실제로 읽은 것은 이러한 플라톤 정의이며 개별 항목 인스턴스는 "내가 끊기 전에 얼마나 많은 스윙을합니까?", "플레이어가 제공 한 나에게 맞춤 이름? "등이 있습니다.
단일 인스턴스에서 인스턴스 간 데이터를 공유함으로써 많은 메모리를 보존하고 지속적인 게임 상태 (저장 게임 또는 플레이어 데이터베이스)없이 항목을 쉽게 업데이트 할 수 있습니다.
따라서 클래스 구조는 다음과 같습니다.
- class 클래스-항목 당 하나의 인스턴스
- 자신의 무기 인스턴스
- 자신의 도구 인스턴스
- 커스텀 이름 등
- 무기 클래스-아이템 당 (최대) 하나의 인스턴스
- Is-a ItemComponent
- WeaponDef 참조
- 보너스 마법 부여 레벨 등
- 도구-항목 당 (최대) 인스턴스 1 개
- Is-a ItemComponent
- ToolDef 참조
- 내구성 등
- WeaponDef 클래스-무기 종류 당 하나의 인스턴스
- 파일에서 읽을 때 필드는 일정해야합니다.
- 기본 피해량, 1 ~ 2 손 등
- ToolDef 클래스-도구 종류 당 하나의 인스턴스
- 파일에서 읽을 때 필드는 일정해야합니다.
- 기본 내구성, 파손될 수있는 물질 등이 있음