1 2 3 4 5 6 7 8 9 10 11 |
class GStrings { protected : vector<wstring> m_vstr; public : const wstring& operator[]( size_t i) const ; //const 버전 wstring& operator[]( size_t i); //일반 버전 size_t size() const ; GRET Load(DataInMem* file); GRET Save(DataInMem* file) const ; }; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
GRET GStrings::Load(DataInMem* file) { DWORD num; if (file->read(&num, 4)<4) return GRET_ERROR_FILE; m_vstr.resize(num); for ( DWORD i=0;i<num;i++) { wchar_t temp[256]={0,}; DWORD len; file->read(&len, 4); file->read(temp, len*2); m_vstr[i]=temp; } return GRET_OK; } |
1 2 3 4 5 6 7 8 9 10 11 12 |
GRET GStrings::Save(DataInMem* file) const { DWORD num=( DWORD )m_vstr.size(); if (file->write(&num, 4)<4) return GRET_ERROR_FILE; for ( DWORD i=0;i<num;i++) { DWORD len=( DWORD )m_vstr[i].size(); file->write(&len, 4); file->write(m_vstr[i].c_str(), len*2); } return GRET_OK; } |
1 2 3 4 5 6 7 8 9 |
wstring& GStrings::operator []( size_t i) { return m_vstr[i]; } const wstring& GStrings::operator []( size_t i) const { return m_vstr[i]; } |
1 2 3 4 5 6 7 8 |
GRET GSprites::LoadSprites(DataInMem* file) { DWORD num; if (file->read(&num, 4)<4) return GRET_ERROR_FILE; m_vspr.resize(num); file->read(&m_vspr[0], sizeof (GSpriteDat)*num); return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
MPlayGame::MPlayGame() { GStrings strs; strs.Load(&DataInFileDirect(L "textures.str" )); for ( size_t i=0;i<strs.size();i++) { m_sprs.LoadTexture(&DataInFileDirect(strs[i].c_str())); } m_sprs.LoadSprites(&DataInFileDirect(L "sprites.dat" )); } void MPlayGame::OnDraw() { m_sprs.DrawSprite(0, 0, 0); m_sprs.DrawSprite(1, 256, 0); m_sprs.DrawSprite(2, 0, 256); } |
리듬게임을 만들어보자 9. 그림 글자를 그려보자. (5) | 2010.01.05 |
---|---|
리듬게임을 만들어보자 8. 로직과 디자인을 분리하자2 (0) | 2009.12.18 |
리듬게임을 만들어보자 6. 직선, 사각형 그리기 (1) | 2009.11.29 |
리듬게임을 만들어보자 5. 경우별로 나눠서 관리하기 (2) | 2009.11.26 |
리듬게임을 만들어보자 4. 행렬변환을 통한 회전, 확대/축소 (0) | 2009.11.24 |
리듬게임을 만들어보자 3. 다양한 그리기 효과 (3) | 2009.11.22 |
댓글 영역