Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2011, 22:14   #1
kolyann
Новичок
Джуниор
 
Регистрация: 18.12.2010
Сообщений: 1
По умолчанию Загрузка игры на winapi

Народ подскажите игра тетрис надо сохранить и загрузить игру. Сохранение идет норм а вот загрузка нет. Я не знаю как надо загрузить циклы.
Код:
       
         case ID_Pause: //пауза
             Pause(hwnd);
             break;
         case ID_Load: //загрузка

           if (pause==FALSE)
            Pause(hwnd);
            // выделение памяти под строку для имени файла
            
            // иниц-ция строки
            lstrcpy(filename,"");

            // иниц-ция структуры    
            memset(&ofn, 0, sizeof(ofn));
            
            // установка указателя на буфер для имени файла   
            ofn.lpstrFile=filename;
            // максимальное количество символов в пути
            ofn.nMaxFile=100;
            
            // задаем размер структуры 
            ofn.lStructSize = sizeof(OPENFILENAME);
            
            // вызываем диалог открытия файла
            if (GetOpenFileName(&ofn))
            {
                // открываем файл 
                hSrc = CreateFile(ofn.lpstrFile, GENERIC_READ, 0, NULL,
                      OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
            
                // определяем размер файла 
                fsize=GetFileSize(hSrc,NULL);

                //очищаем массив
                memset(pBuffer,0, sizeof(pBuffer));
            
                // читаем строку из файла
                ReadFile(hSrc, pBuffer, fsize, &read, NULL);
            

                // закрываем файл 
                CloseHandle(hSrc);
            
                // удаляем выделенную память
                
                // загружаем очки,жизни и координаты
            
                sscanf(pBuffer,"%d %d %d %d %d %d %d",
                &deltax , 
                &deltay,
                &scores,
                &screen[16][18],
                &oldscreen[16][18],
                &cup[16][18],
                &figure[4][4],
                &oldfigure[4][4]);            
                
                
              game=TRUE;

                MessageBox(NULL, pBuffer, "Загр выполняется правильно", 0);


                InvalidateRect(hwnd,NULL,TRUE);
                SendMessage(hwnd,WM_COMMAND,ID_Pause,0);
                
            }
                    break;
        case ID_Save: //сохранение
        if (game==TRUE)
            {
            if (pause==FALSE)
            Pause(hwnd);
            
        // выделение памяти под строку для имени файла
            
            // инициализация строки
            lstrcpy(filename,"");

            // иниц-ция структуры    
            memset(&ofn, 0, sizeof(ofn));

            // установка указателя на буфер для имени файла 
            ofn.lpstrFile=filename;
            
            // максимальное количество символов в пути
            ofn.nMaxFile=100;
            
            // задаем размер структуры 
            ofn.lStructSize = sizeof(OPENFILENAME);
            
            // вызываем диалог сохранения
            if (GetSaveFileName(&ofn))
            {
                // открытие файла для записи
                hDest = CreateFile(ofn.lpstrFile, GENERIC_WRITE, 0, NULL,
                CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
                memset(&pBuffer,0, sizeof(pBuffer));
                wsprintf(pBuffer,"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
                deltax , 
                deltay,
                scores,
               // screen[16][18],


//oldscreen[16][18],
                cup[16][18],
cup[0][1],cup[0][2],cup[0][3],
 figure[0][0],  figure[0][1], figure[0][2], figure[0][3], figure[0][4],
 figure[1][0],  figure[1][1], figure[1][2], figure[1][3], figure[1][4],
 figure[2][0],  figure[2][1], figure[2][2], figure[2][3], figure[2][4],
 figure[3][0],  figure[3][1], figure[3][2], figure[3][3], figure[3][4],
 figure[4][0],  figure[4][1], figure[4][2], figure[4][3], figure[4][4],
                //oldfigure[4][4]
                );

                txt_length=lstrlen(pBuffer);
                // запись в файл текста 
                WriteFile(hDest, pBuffer, txt_length+1, &written, NULL);
                /* закрытие файла */
                CloseHandle(hDest);
                /* удаление динамически созданного элемента*/ 
                
            }
        }
kolyann вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка Флеш игры dima1 Свободное общение 1 13.08.2010 16:30
Загрузка bmp в TImage на WinApi ImmortalAlexSan Win Api 2 19.07.2010 17:47
разработка игры "Реверси". Имеется код этой игры на С++ CD-RW Помощь студентам 0 28.03.2010 00:13
БД на WinApi yngwie Win Api 3 09.03.2009 20:54