다양한 글들/PushPush 게임
6. Data
smile blog
2022. 9. 27. 16:21
Stage.cpp
#include "Stage.h"
Stage::Stage()
{
}
Stage::~Stage()
{
}
bool Stage::Load() // 스테이지를 불러오는 작업
{
FILE* fp = nullptr; //
errno_t error = fopen_s(&fp, "..\\Stages\\Stage01.txt", "rt,ccs=UTF-8"); // ..\\ = 전 파일로 들어가는 방식
// fopen_s = 파일을 여는 함수
// Stage01.txt는 하드디스크에 있는 파일이므로 위처럼 써야 램으로 불러올 수 있음 (왜냐하면 우리가 돌리는 프로그램은 램에서 돌아가니까)
if (error != 0) //error가 0일때는 밑에처럼 나오게 출력
{
std::wcout << L"스테이지 파일이 없습니다.\n";
std::wcout << L"파일 경로를 확인해주세요.\n";
exit(0); // 콘솔 창 종료 명령어
}
wchar_t buff[64] = L""; //유니코드는 wchar_t를 사용해야함 wchar_t와 L은 환상의 짝꿍
fgetws(buff, 63, fp); //이런건 그때그때 찾아보는 것 같음
//fgetws는 스트림에서 와이드 문자 스트링 읽기 (w는 와이드를 의미)
//fgets는 스트링 읽기
for (size_t y = 0; y < 8; y++)
{
int i = 0;
for (size_t x = 0; x < 8; x++)
{
mMap->SetGameObjectInMap(x, y, buff[i++]);
// mData[y][x]= i++
}
}
//std::wstring buff = L"";
//fscanf_s(fp, "%s", buff);
fclose(fp); // 램을 해제해줘야함 (안하면 메모리를 잡아먹음)
return false;
}
Stage.h
#pragma once
#include "Common.h"
#include "Map.h"
class Stage //스테이지를 여러개 만들어주면 번거로우니까 Stage 파일을 따로 만들어줌
{
public:
Stage();
~Stage();
void SetMap(Map* map) { mMap = map; } //
bool Load();
private:
Map* mMap;
};