4. 개발 주요 내용
• 자료들을 데이터로 따로 관리하게 위해 파일입출력을 이용함.
• 불변의 데이터와 가변의 데이터를 나누어서 다른 파일로 관리함.
• 불변의 데이터는 파일에서 입력만 받아오는 형식으로 한다.
• 가변의 데이터는 마지막 상태를 입력 받아오고, 출력을 통해 저장하는 형식으
로 한다.
• 가변의 데이터 (고양이와 장난감의 위치, 배치상태 등) 는 구조체 포인터로 저
장 및 정보 수정이 이루어 진다.
• 리스트를 이용해서 만들어진 고양이 및 장난감의 객체들을 관리한다.
6. 세부 구조
• MainDraw : 더블버퍼링 구현
• MainGame : 게임 내부의 구현
• BakObj : 배경화면의 출력
• 내부 흐름은 최초 [초기화 – 업데이트 – 랜더링] 순으로 진행되고 이후 [업데
이트 – 렌더링]을 반복
7. 세부 구조
• FileIO : 파일 입출력을 통한 데이터파일 관리.
• ToyManage : FileIO의 구조체를 포인터를 활용해서 받아옴.
• ToyObj : ToyManage에서 File에 데이터들로 생성 후 ToyManage에서 리스트로 관리
• CatObj : ToyManage에서 File에 데이터들로 생성 후 ToyManage에서 리스트로 관리
• 데이터 파일은 ToyData,CatData,ToyState,Catstate 네개의 파일로 나누어서 관리
• 구조체는 CatStruct, ToyStruct로 나눠 관리
8. 세부 구조
• FileIO 에서 파일 별로 읽어와서 구조체에 넣어준 후 구조체는 구조체 리스트로
ToyManage에 전달
• ToyManage에 insert 메소드를 이용하여 받아온 구조체 리스트로 객체 생성 후 객
체의 state값에 따라 객체관리 리스트로 나뉘어 저장 ( 활성화, 비활성화 여부 결정)
• 리스트끼리의 이동은 state값의 변동에 따라 알맞은 리스트로 push_back 및 삭제
• ToyManage 내부에 Click이벤트 메소드 구현
• Esc누르면 가방의 실행
• 가방 실행 동안에는 활성화된 고양이,장난감의 비 출력
• 가방 실행 동안의 좌 클릭 시 원하는 장난감 선택
• 가방에서의 클릭은 객체 선택과 객체의 이동이 실행
• 가방 종료 후 화면 클릭시에 선택된 객체의 위치선택
10. 후기 및 느낀 점
• 데이터의 사용목적과 사용되는 방향에 따라 다양한 자료구조의 활용
• 좀더 고급화된 파일 입출력의 사용에 대한 필요성의 느낌 ( ex JSON)
• 객체의 포인터로서의 생성 및 사용을 통해 프로그램과 포인터에 대한 이해 증진
과, 메모리의 효율적인 사용능력 증가