* 빠른 데이터 로드 기법
빠른지 모르겟지만.. 파일에 저장과 로드할때의 방법인거 같음..
- 요런 데이타가 있다.
- class GameData
{
public:
bool Save(char *fileName);
bool Load(char *fileName);
bool BufferedLoad(char *fileName);
// 게임 데이터에 접근하기 위한 멤버 함수들이 추가되어야 한다. - private:
// 한 시점에서 하나의 파일만 연다. - 이멤버는 저장되지 않는다. - static FILE *fileDescriptor;
// 게임 데이터. int data[1000]; // 실제로는 이보다 더 복잡하겠지..- };
- 데이터의 저장.
-
bool GameData::Save(char *fileName)
{
fileDescriptor = fopen(fileName, "wb");
if(fileDescriptor)
{
fwrite(this, sizeof(GameData), 1, fileDescriptor);
fclose(fileDescriptor);
//파일 쓰기의 성공을 알린다. - return TRUE;
}
else
{
// 파일 쓰기의 실패을 알린다. - return FALSE;
}
}
- 자 이제.. 로드
- bool GameData::Load(char *fileName)
{
// 읽기 모드로 열고..
fileDescriptor = fopen(fileName, "rb");
if(fileDescriptor)
{
fread(this, sizeof(GameData), 1, fileDescriptor);
fclose(fileDescriptor);
// 성공 - return TRUE;
}
else
{
// 실패 return FALSE;
}
}
* 관건은 클래스를 통째로 파일에 저장한다는거.. 킁..( 이렇게도 하는군아.. ㅎㅎ)
* 일부 게임기 하드웨어의 경우에 주의할점이 있긴하지만.. 그건.. 책을 보세효.. ㅋ
이상..
[출처] 빠른 데이터 로드 기법|작성자 교
이 글은 스프링노트에서 작성되었습니다.

Prev
Rss Feed