WIN32API FrameWork

WIN32API FrameWork/한단계씩 직접 구현

79. 측면 충돌 체크(프레임워크 완성)

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com class CGameObject - 물리 시뮬레이션 && 좌,우측 이동량이 감지되었을 때만 작동한다. - 우측 이동/좌측 이동 두 상황으로 나눈다. - 로직은 착지 알고리즘과 비슷하다. 1. 이전 위치와 현재 위치를 연결한 사각형을 만든다.(위 이미지 참고) 2. 지나온 지점에 있었던 타일들을 모조리 구한다. 3. 이동 불가 타일이 있었는지 순회를 돌며 확인을 한다. -- 타일 ..

WIN32API FrameWork/한단계씩 직접 구현

78. 바닥 충돌 체크

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com - 이렇게 캐릭터가 점프했다 도로 떨어지는 상황을 가정해보자. - 그런데 렉이 걸려서 프레임 사이의 시간 간격(DeltaTime)이 1초를 넘었다면 다음 프레임은 이렇게 한번에 충돌 타일을 넘어가버려서 그대로 아래로 추락하는 버그가 발생할 수도 있다. - 이런 상황을 막기 위해서는 '이동량'을 통해서 충돌 계산을 해야 한다. 이런 식으로 말이다. 이렇게 구해놓고 중간에 이동 불가..

WIN32API FrameWork/한단계씩 직접 구현

77. 타일맵 에디터 8: Save & Load 3

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com * 목표: 저장된 타일맵을 실제로 불러와서 사용하기 GameInfo.h - MAP_PATH를 "MapPath"로 정의해 준다. class CPathManager - MapPath의 위치를 등록한다.(Bin/TileMap/...) class CGameObject < virtual void Load(FILE* File);..

WIN32API FrameWork/한단계씩 직접 구현

76. 타일맵 에디터 7: Save & Load 2 - 문제 해결

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com - 지난번에 Save & Load 기능의 대부분은 구현했었다. - 이제 직접 저장, 불러오기를 반복하면서 문제가 생기는 부분을 수정해 줄 차례이다. - 타일맵을 하나 생성해서 대충 편집한 다음 타일맵을 저장하고, 다시 불러오기를 해보았다. - Scene에 nullptr이 들어가있다. - 이전 호출 스택을 확인해보니, - m_Scene이 없다. - 다음 호출 ..

WIN32API FrameWork/한단계씩 직접 구현

75. 타일맵 에디터 6: 빈 타일, 배경화면 설정

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com - Save & Load를 완성하기 전에, 기본 기능을 전부 완성해놓자. class CTile - ERenderRayer::Tile 추가하고 CTile의 Layer을 전부 Tile로 변경 { bool m_Render } - 빈 공간에는 타일을 표시하지 않기 해 선언하는 변수. 기본 true - 위치 좌표를 받아서 해당 좌표에 있는 타일의 출력 ..

WIN32API FrameWork/한단계씩 직접 구현

74. 타일맵 에디터 5: Save & Load

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com [ 다이얼로그 ] - Save 버튼, Load 버튼을 만들어준다. class CSceneEditDlg - 세이브 & 로드 버튼을 눌렀을 때 작동할 함수를 만들어주고, WinProc() 함수에서 버튼을 눌렀을 때 이 함수가 호출되도록 설정해 준다. - 가장 먼저 CSceneEdit이 타일맵을 생성해서 들고있는지부터 확인한다. -..

WIN32API FrameWork/한단계씩 직접 구현

73. 타일맵 에디터 4: 기타 기능 추가.

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com [ 다이얼로그 창 ] - 프레임 편집, 이동 가능 여부를 설정할 수 있는 기능을 구현한다. - 다이얼로그에서 값을 지정하고 클라이언트 영역에서 드래그하면 일괄적으로 값이 설정되도록 하는것이다. - 콤보박스(드롭다운 메뉴)를 두개 만들어준다. -- ID를 IDC_COMBO_BRUSH_TYPE, IDC_COMBO_OPTION으로 설정하고, 정렬은 false로 해준다. --- 왼쪽의 ..

WIN32API FrameWork/한단계씩 직접 구현

72. 타일맵 에디터 3: 스프라이트 텍스처의 프레임 좌표 지정

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com class CSceneEdit - 지난번 코드에 메모리 누수가 발생하는 문제가 있어 수정하였다. - _CrtSetBreakAlloc() 함수를 통해 확인해 보니, 다이얼로그 클래스를 생성할 때 문제가 발생하는 것을 확인. -- 원인은 다이얼로그 창을 여러번 닫았다 열었다 할 때, 기존 다이얼로그 창 클래스가 제거되지 않아 발생했다. -- 다이얼로그를 관리하는 클래스인 CScene..

WIN32API FrameWork/한단계씩 직접 구현

71. 타일맵 에디터2: 타일에 텍스처 지정

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com class EditDlg - 지난 번에 텍스처를 로드하는 과정까지는 완료했다. - 이번에는 텍스처 파일을 불러와 특정 텍스처 파일로 타일맵을 만들어 보자. - ' 이미지 불러오기 ' 버튼을 하나 생성해준다. - 버튼이 눌릴 시 LoadTexture() 메소드를 호출한다. - '파일 열기' 대화창을 불러..

WIN32API FrameWork/한단계씩 직접 구현

70. Font 관련 수정

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com - 지난번에 만든 CFont, CFontManager 관련해서, 글꼴이 바뀌지 않는 문제가 있어 수정이 필요하다. - 폰트가 위에서 아래로 바뀌어서 잘 적용되고 있는 줄 알았는데, 알고 보니 원하는 폰트로 바뀐 것이 아니라 폰트가 제대로 로드되지 않아 윈도우 기본 출력인 굴림체로 바뀐 것이었다. - 다른 폰트를 로드해 봤는데 똑같은 폰트만 출력되어서 알아챘음. [ 문제점 ] - ..

WIN32API FrameWork/한단계씩 직접 구현

69. 타일맵 에디터1: 제작 및 타일맵 불러오기

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com - 타일맵을 쓰는 이유는 편의성에 있다. - 맵을 일일히 그려낼 필요 없이, 타일 배치에 따라서 맵을 만들 수 있게 되기 때문이다. - 아예 맵을 마우스를 이용해 찍어낼 수 있다면, 더욱더 편할 것이다. - 다이얼로그 창을 하나 만든다. 필터에 우클릭 - 추가 - 리소스 - 다이얼로그를 해주면 된다. - 그러면 이런 창이 뜬다. - 이후 이 창에서 ALT + ENTER를 입력 시..

WIN32API FrameWork/한단계씩 직접 구현

68. 타일 맵

http://hyrule.tistory.com/111 *** 공부 방법 *** 1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처 hyrule.tistory.com - 화장실 타일 깔듯이 게임을 일정 구획으로 나누고, 구획별로 그림을 붙여서 커다란 맵을 만드는 방식 - 행렬 또는 이차원 배열 구성으로 생각해야 한다. - 그러므로 각 타일은 X좌표와 Y좌표를 저장해야 한다. - 슈퍼마리오가 대표적인 타일맵 구성이다. flag.h { enum class ETileOption } - 해당 타일이 갈 수 있는 곳인지 없는 곳인지를 저장하기 위해 만..

hyrule
'WIN32API FrameWork' 카테고리의 글 목록