WIN32API FrameWork

WIN32API FrameWork/한단계씩 직접 구현

67. 화면의 확대

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com * WIN32API로 고전 도트 게임을 만들어볼 사람들에게만 해당되는 글임 - 요즘 나오는 도트 게임들은 일반적으로 아예 도트 하나가 여러 픽셀로 확대된 이미지를 사용하지만, - 고전 도트게임은 아래처럼 아예 한 도트가 한 픽셀인 작은 이미지를 확대하여 쓰는 경우가 많았다. - 그렇기에 고전 도트게임을 WIN32API에서 출력하려면 애로사항이 있다. -- 아예 Scale 개념을 ..

WIN32API FrameWork/한단계씩 직접 구현

66. 오브젝트 컬링

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com - 오브젝트 컬링(Culling: 도태)이란 화면 밖의 물체들을 렌더링하지 않고 스킵하는 것을 말한다. - 사실, 지난번에 간단한 컬링을 만들기는 했다.(근데 &&이 아니라 ||로 해놔서 작동이 되지는 않고 있었음...) CGameObject의 위치(점)만 기준으로 해서 해당 점이 화면 안에 있을 때만 출력했던 것이다. - 그런데 이게 사실 그냥 이렇게 해버리면 문제가 있다. -..

WIN32API FrameWork/한단계씩 직접 구현

65. 간단한 점프 물리 법칙

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com GameInfo.h - GRAVITY = 9.8f 로 정의해놓자. class CGameObject; protected://물리 처리 bool m_PhysicsSimulate; bool m_Ground; float m_GravityAccel; float m_FallTime; float m_FallStartY; bool m_Jump; float m_JumpVelocity; publi..

WIN32API FrameWork/한단계씩 직접 구현

64. 텍스트 출력

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com class CWidgetText - 텍스트를 받아 출력하는 위젯을 생성한다. -- vector를 구현하는 것과 비슷한 느낌으로 구현하면 된다. 더보기 #pragma once #include "Widget.h" class CWidgetText : public CWidget { friend class CWidgetComponent; friend class CWidg..

WIN32API FrameWork/한단계씩 직접 구현

멤버함수와 전역함수의 이름이 겹칠 때

void SetTextColor(unsigned char r, unsigned char g, unsigned char b); - 이런 함수를 만들었다고 가정했는데 알고보니 void SetTextCOlor(HDC hDC, COLORREF Color); - 전역함수에 이런 함수가 존재해서 이름이 겹쳐서 호출이 안된다면? -> 이럴 경우 앞에 '범위 지정 연산자'인 ::을 붙여주면 전역함수 호출이 가능하다. ::SetTextColor(hDC, RGB(0, 0, 0));

WIN32API FrameWork/한단계씩 직접 구현

63. 위젯 컴포넌트

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com class CWidgetComponent: public CWidgetWindow; - 여태까지는 게임오브젝트를 따라다녀야 하는 위젯들은 손수 주소를 받아서 위치를 구했었다. - 그런데 위젯은 종종 게임오브젝트를 따라다닌다 -> 아예 이걸 미리 설정해놓은 '위젯 컴포넌트'를 만들면 편할 것이다. - CWidgetWindow 클래스를 상속받아 조금 개조해서, CGameObject에서..

WIN32API FrameWork/한단계씩 직접 구현

62. 숫자 이미지 위젯

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com class CNumber: public CWidget { CSharedPtr m_NumberImage} - 각 숫자에 출력할 이미지 저장 - 스프라이트 좌표를 통해 다른 부분을 출력하거나, 프레임 번호에 따라 다른 이미지를 출력해야 하므로 - 해당 정보가 들어있는 클래스인 CAnimationSequence를 사용한다. { int m_Number } - 출력하고싶은 숫자 저장 < ..

WIN32API FrameWork/한단계씩 직접 구현

61. 폰트

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com [ 사전 지식 ] - 인자로 들어온 주소에서 폰트 파일을 로드한다. - 이렇게 로드한 폰트는 밑의 CreateFontIndirect() 또는 CreateFont() 함수를 사용해 특정 HDC에서 사용하도록 지정해 줄 수 있다. - 로드 가능한 폰트 확장자 및 자세한 내용은 MSDN을 참고 https://docs.microsoft.com/en-us/windows/win32/api/..

WIN32API FrameWork/한단계씩 직접 구현

60. 프로그레스 바

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com [ 오류 해결 ] - CEffect 클래스의 Render Layer이 Default로 되어있던 문제 수정. -- 생성자에서 변경해 주었음. 더보기 CEffect::CEffect(): m_Duration(0.f), m_Time(0.f), m_EffectType(EEffectType::Once) { m_RenderLayer = ERenderLayer::Effect; } - CScen..

WIN32API FrameWork/한단계씩 직접 구현

59. 마우스에 애니메이션 띄우기

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com [ 사전 지식 ] - 클라이언트 영역의 좌표를 구한다. class CInput - 이미 어떤 객체에 텍스처 이미지 파일이나 애니메이션을 출력하는 기능은 CGameObject에 모두 구현되어 있다. - 그러므로 여기서 기능을 떼다가 마우스를 만들면 어렵지 않게 출력이 가능하다. - CGameObject의 friend class로 ..

WIN32API FrameWork/한단계씩 직접 구현

58. 버튼 완성

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com [ 사전 지식 ] DestroyWindow(HWND) - WM_DESTROY 메시지를 발생시킨다 -> WIN32API 창을 종료시킨다. class CInput { bool MouseLDown, MouseLPush, MouseLUp } - 이제 버튼에 대한 마우스 클릭을 처리해주어야 하므로 해당 변수들을 추가한다. 생성자에서 false로 ..

WIN32API FrameWork/한단계씩 직접 구현

57. 위젯의 마우스 충돌

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com [ 변경 사항 ] class CWidgetWindow { m_Pos -> m_PosLT } - 이 클래스의 위치 변수는 창 좌측 상단의 위치를 저장하는데, 여타 클래스들의 m_Pos와 똑같이 써 버리면 혼동이 올 수도 있을 것 같아 m_PosLT로 변수 이름을 변경하였음. class CScene; - m_Visibility ..

hyrule
'WIN32API FrameWork' 카테고리의 글 목록 (2 Page)