预算。我正在尝试保存“块布局”。这包括保存每个块的数据,每个块都是指向CBlock类的指针。因此,我需要将它们的属性存储在文件中,以便播放器可以加载其布局并进行播放。问题是我不知道将数据保存到文本文件的最佳方法是什么。我将至少需要BLOCKTYPE
(这是我可以用来构造对象的enum
)和块的X和Y位置。
我尝试用for
保存我的块向量,但这根本不起作用。到目前为止,我还不知道如何保存和加载。
这是我目前尝试保存文件的方式,但是不起作用。
void CCreateWindow::OnBnClickedButtonSave(){
// TODO: Add your control notification handler code here
if (m_blockLayout.size() > 0)
{
CString m_filter = TEXT("Super Breakout Maker Files (*.sbm)|*.sbm|All Files (*.*)|*.*||");
CFile m_saveFile;
CFileDialog m_fileDlg(FALSE, TEXT(".sbm"), TEXT("mylayout"), OFN_OVERWRITEPROMPT, m_filter, NULL, 0, TRUE);
//CFileDialog m_fileDlg(FALSE, TEXT(".sbm"), TEXT("mylayout"), 0, m_filter);
if (m_fileDlg.DoModal() == IDOK)
{
m_saveFile.Open(m_fileDlg.GetFileName(), CFile::modeCreate | CFile::modeWrite);
CArchive m_saveArchive(&m_saveFile, CArchive::store);
for (int i = 0; i > m_blockLayout.size(); i++)
{
m_saveArchive << m_blockLayout[i]->GetBlockType() << m_blockLayout[i]->GetXPosition() << m_blockLayout[i]->GetYPosition();
}
m_saveArchive.Close();
MessageBox(TEXT("Your layout was successfully saved!"), TEXT("Notification"), MB_ICONINFORMATION);
}
else
{
return;
}
m_saveFile.Close();
}
else
{
MessageBox(TEXT("You can't save an empty layout."), TEXT("Warning"), MB_ICONWARNING);
}}