728x90
사실 폰트 하나 바꾸는건 간단했다.
AddFontResource(TEXT("Orbit Regular.ttf"));
HFONT currentFont = CreateFont(50, 0, 0, 0, 0, 0, 0, 0, HANGEUL_CHARSET, 0, 0, 0, VARIABLE_PITCH | FF_ROMAN, TEXT("Orbit Regular"));
HFONT oldFont = (HFONT)SelectObject(_dc, currentFont);
SelectObject(_dc, oldFont);
위처럼 4출만 있고, 2번째 SelectObject하기 전에 Text를 출력하면 끝이다.
근데 뭔가 안 바뀌더라 다름 아니라...
TTF파일 열고 폰트 다운 받는 곳의 이름과 파일 탐색기에 써 있는 이름이 다른데, 파일 탐색기에 있는 이름으로 해서 그랬다.
다음엔 폰트 이름 잘 확인해야지....
근데 여기서 다른 문제가 생겼다 !
아래처럼 잘 적용되어있던 폰트가
대략 10초정도 런타임한 이후 폰트 적용이 풀려버리더라..
그래서 진짜 오래 고민해보고, 도저히 모르겠어서 선생님께 한번 질문 드려봤는데..
해결 방법 너무 잘, 빠르게, 친절하게 !! 알려주셔서 바로 적용해보니 너무 잘 적용이 되고 안 풀리더라 !!!!
선생님 ㅜㅜㅜ 감사합니다. 덕분에 너무 잘 폰트적용이 돼요 !!! 너무너무 감사합니다 !!!!! ❤️❤️❤️
또 프래임워크에 들어있던 deltaTime을 이용하여 TEXT가 천천히 나오게 해주는 것도 만들어주었다.
하나하나 나오는게 뭔가뭔가 신기하더라 !!
void Text::Update()
{
m_fCurrentTime += fDT;
}
void Text::Render(HDC _dc)
{
if (m_fCurrentTime >= m_fPrintTime)
{
m_fCurrentTime -= m_fPrintTime;
if (m_sFrontText.size() != 0)
{
if (m_sPrintText.size() < m_sFrontText.size())
m_sPrintText += m_sFrontText[m_sPrintText.size()];
}
else if (!m_qPrintQueue.empty())
{
m_sFrontText = m_qPrintQueue.front();
m_qPrintQueue.pop();
}
}
}
마지막으로 다음 TEXT로 넘기는 것과 남은 것들 생성하는걸 만들어주면 !
void Text::Update()
{
if (KeyMgr::GetInst()->GetKey(KEY_TYPE::SPACE) == KEY_STATE::DOWN)
{
if (m_sPrintText.size() == m_sFrontText.size())
{
m_sFrontText = m_qPrintQueue.front();
m_qPrintQueue.pop();
}
else
{
m_sPrintText = m_sFrontText;
}
}
}
짜짠 완성이당 !
선생님 편한 프레임워크 만들어주셔서 감사합니당 !!!
너무 편해요 !!!!!
728x90
'개발일지 > 2023_GameProgramming(Team)' 카테고리의 다른 글
[2023_GameProgramming(Team)] C++, WINAPI로 WebSite와 FileExplorer열기 (0) | 2023.11.30 |
---|
댓글